Ejemplo n.º 1
0
        public void Ancestors_OnRoot_ReturnsNone()
        {
            var item      = new ItemCore.Builder().ToImmutable().ToNode();
            var ancestors = item.Ancestors();

            Assert.Empty(ancestors);
        }
Ejemplo n.º 2
0
        public void AncestorsAndSelf_OnRoot_ReturnsSelf()
        {
            var item      = new ItemCore.Builder().ToImmutable().ToNode();
            var ancestors = item.AncestorsAndSelf();

            Assert.Collection(ancestors, x => Assert.Same(item, x));
        }
Ejemplo n.º 3
0
        public void With_CollectionProperty_CreatesModifiedInstance()
        {
            var item        = new ItemCore.Builder().ToImmutable();
            var subject     = new ContainerCore.Builder().ToImmutable();
            var newInstance = subject.WithItems(new[] { item }.ToImmutableArray());

            Assert.Collection(newInstance.Items, x => Assert.Same(item, x));
        }
Ejemplo n.º 4
0
        public void With_CollectionProperty_DoesNotModifyInstance()
        {
            var item    = new ItemCore.Builder().ToImmutable();
            var subject = new ContainerCore.Builder().ToImmutable();

            subject.WithItems(new[] { item }.ToImmutableArray());
            Assert.Empty(subject.Items);
        }
Ejemplo n.º 5
0
        public void With_SimpleProperty_CreatesModifiedInstance()
        {
            const string NewName     = "New Name";
            var          subject     = new ItemCore.Builder().ToImmutable();
            var          newInstance = subject.WithName(NewName);

            Assert.Equal(NewName, newInstance.Name);
        }
Ejemplo n.º 6
0
        public void With_SimpleProperty_DoesNotModifyInstance()
        {
            const string NewName = "New Name";
            var          subject = new ItemCore.Builder().ToImmutable();

            subject.WithName(NewName);
            Assert.Null(subject.Name);
        }
Ejemplo n.º 7
0
        public void ToBuilder_CopiesSimpleProperty()
        {
            const string Name    = "Name";
            var          subject = new ItemCore.Builder()
            {
                Name = Name
            }.ToImmutable();
            var builder = subject.ToBuilder();

            Assert.Equal(subject.Name, builder.Name);
        }
Ejemplo n.º 8
0
        public void ToBuilder_CopiesCollectionProperty()
        {
            const string ItemId      = "qwerty12345";
            var          itemBuilder = new ItemCore.Builder()
            {
                Id = ItemId
            };
            var container = new ContainerCore.Builder()
            {
                Items = { itemBuilder }
            }.ToImmutable();
            var builder = container.ToBuilder();

            Assert.Collection(builder.Items, x => Assert.Same(ItemId, x.Id));
        }
Ejemplo n.º 9
0
        public void With_CollectionProperty_ParamsOverride_ReplacesItems()
        {
            const string Item1Id = "id1";
            const string Item2Id = "id2";
            var          item1   = new ItemCore.Builder {
                Id = Item1Id
            };
            var item2Node = new ItemCore.Builder {
                Id = Item2Id
            }.ToImmutable().ToNode();
            var container = new ContainerCore.Builder {
                Items = { item1 }
            }.ToImmutable().ToNode();
            var newContainer = container.WithItems(item2Node);

            Assert.NotSame(container, newContainer);
            Assert.Collection(
                container.Items,
                x => Assert.Equal(Item1Id, x.Id));
            Assert.Collection(
                newContainer.Items,
                x => Assert.Equal(Item2Id, x.Id));
        }
Ejemplo n.º 10
0
        public void Add_CollectionProperty_IEnumerableOverride_AddsItems()
        {
            const string Item1Id = "id1";
            const string Item2Id = "id2";
            var          item1   = new ItemCore.Builder {
                Id = Item1Id
            };
            var item2Node = new ItemCore.Builder {
                Id = Item2Id
            }.ToImmutable().ToNode();
            var container = new ContainerCore.Builder {
                Items = { item1 }
            }.ToImmutable().ToNode();
            var newContainer = container.AddItems(new[] { item2Node }.ToImmutableList());

            Assert.NotSame(container, newContainer);
            Assert.Collection(
                container.Items,
                x => Assert.Equal(Item1Id, x.Id));
            Assert.Collection(
                newContainer.Items,
                x => Assert.Equal(Item1Id, x.Id),
                x => Assert.Equal(Item2Id, x.Id));
        }