public void CopyTo_Sets_Foreign_Field() { // arrange var entity = TestHelper.CreateEntityWithId <Artist>(1); var artistStatisticValues = new ArtistStatisticValues(); var entityCollection = new EntityCollection <ArtistStatisticValues>(entity, "AnotherArtist", "StatisticValues"); // act entityCollection.CopyTo(new[] { artistStatisticValues }, 0); // assert Assert.Equal(artistStatisticValues.AnotherArtist, entity); }
public void AddCollectionChangedItem_Prevents_Unneccessary_Changes(CollectionChangeType changeType) { // arrange var entity = TestHelper.CreateEntityWithId <Artist>(1); var propertyChangeTracker = new PropertyChangeTracker(entity); var oppositeChangeType = changeType == CollectionChangeType.Added ? CollectionChangeType.Removed : CollectionChangeType.Added; var statisticValue = new ArtistStatisticValues(); // act propertyChangeTracker.AddCollectionChangedItem(new CollectionChangedItem("StatisticValues", statisticValue, changeType)); propertyChangeTracker.AddCollectionChangedItem(new CollectionChangedItem("StatisticValues", statisticValue, oppositeChangeType)); // assert Assert.False(propertyChangeTracker.HasChanged <Artist>(x => x.StatisticValues)); }
public void Add_Adds_Collection_Changed_Item() { // arrange var entity = TestHelper.CreateEntityWithId <Artist>(1); var artistStatisticValues = new ArtistStatisticValues(); var entityCollection = new EntityCollection <ArtistStatisticValues>(entity, "AnotherArtist", "StatisticValues"); TestHelper.SetupEntityMetadataServices(); // act entityCollection.Add(artistStatisticValues); // assert Assert.True(entity.PropertyChangeTracker.HasChanged <Artist>(x => x.StatisticValues)); }
public void GetChildEntities_Returns_Expected_Entities_With_Cascade_SaveDelete() { // arrange var artist = TestHelper.CreateEntityWithId <Artist>(1); var statisticValue = new ArtistStatisticValues(); var anotherArtist = new Artist(); artist.AnotherArtist = anotherArtist; artist.StatisticValues.Add(statisticValue); // act var result = new EntityService().GetChildEntities(artist, Cascade.SaveDelete); // assert Assert.Single(result); Assert.Contains(result, x => x == artist); }
public void RemoveAt_Removes_Foreign_Field() { // arrange var entity = TestHelper.CreateEntityWithId <Artist>(1); var artistStatisticValues = new ArtistStatisticValues(); var entityCollection = new EntityCollection <ArtistStatisticValues>(entity, "SecondArtist", "StatisticValues") { artistStatisticValues }; TestHelper.SetupEntityMetadataServices(); // act entityCollection.RemoveAt(0); // assert Assert.Null(artistStatisticValues.SecondArtist); }
public void Remove_Removes_Not_When_ReferenceField_Is_Mandatory() { // arrange var entity = TestHelper.CreateEntityWithId <Artist>(1); var artistStatisticValues = new ArtistStatisticValues(); var entityCollection = new EntityCollection <ArtistStatisticValues>(entity, "AnotherArtist", "StatisticValues") { artistStatisticValues }; TestHelper.SetupEntityMetadataServices(); // act entityCollection.Remove(artistStatisticValues); // assert Assert.NotNull(artistStatisticValues.AnotherArtist); }
public void DiscardChanges_Work() { // arrange TestHelper.SetupEntityMetadataServices(); var connectionMock = TestHelper.SetupMock <IConnection>(); var session = new Session(connectionMock.Object); var entity = new Artist(); var statisticValue = new ArtistStatisticValues(); var entityServiceMock = TestHelper.SetupMock <IEntityService>(); entityServiceMock.Setup(s => s.GetChildEntities(entity, Cascade.Save)).Returns(new List <Entity> { entity }); entity.Name = "Source"; entity.StatisticValues.Add(statisticValue); entity.PropertyChangeTracker.Clear(); session.Save(entity); entity.Name = "Test"; entity.AnotherArtist = new Artist(); entity.StatisticValues.Add(new ArtistStatisticValues()); entity.PropertyChangeTracker.AddPropertyChangedItem <Artist>(x => x.Name, "Source", "Test"); entity.PropertyChangeTracker.AddPropertyChangedItem <Artist>(x => x.AnotherArtist, null, entity.AnotherArtist); // act session.DiscardChanges(); // assert Assert.Equal("Source", entity.Name); Assert.Null(entity.AnotherArtist); Assert.Single(entity.StatisticValues, statisticValue); connectionMock.VerifyAll(); }
public void TryGetRemovedCollectionItems_Can_Get_Removed_Items() { // arrange var entity = TestHelper.CreateEntityWithId <Artist>(1); var entityCollection = new EntityCollection <ArtistStatisticValues>(entity, "AnotherArtist", "StatisticValues"); var statisticValues = new ArtistStatisticValues(); entity.PropertyChangeTracker.DisableChangeTracking = true; entityCollection.Add(statisticValues); entity.PropertyChangeTracker.DisableChangeTracking = false; entityCollection.Remove(statisticValues); List <ArtistStatisticValues> listRemovedItems; // act var result = entity.PropertyChangeTracker.TryGetRemovedCollectionItems <Artist, ArtistStatisticValues>(x => x.StatisticValues, out listRemovedItems); // assert Assert.True(result); Assert.NotNull(listRemovedItems); Assert.Equal(statisticValues, listRemovedItems[0]); }