public void Ancestors_OnRoot_ReturnsNone() { var item = new ItemCore.Builder().ToImmutable().ToNode(); var ancestors = item.Ancestors(); Assert.Empty(ancestors); }
public void AncestorsAndSelf_OnRoot_ReturnsSelf() { var item = new ItemCore.Builder().ToImmutable().ToNode(); var ancestors = item.AncestorsAndSelf(); Assert.Collection(ancestors, x => Assert.Same(item, x)); }
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)); }
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); }
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); }
public void With_SimpleProperty_DoesNotModifyInstance() { const string NewName = "New Name"; var subject = new ItemCore.Builder().ToImmutable(); subject.WithName(NewName); Assert.Null(subject.Name); }
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); }
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)); }
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)); }
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)); }