public void EntityDiff_Loops_Over_Diffs() { // arrange var dbEntities = new HashSet <Dummy>(AllEntities.Select(e => new Dummy { Id = e.Id })); EntityDiffs <Dummy> diffs = new EntityDiffs <Dummy>(AllEntities, dbEntities, Relationships); // Assert & act foreach (EntityDiffPair <Dummy> diff in diffs) { Assert.Equal(diff.Entity.Id, diff.DatabaseValue.Id); Assert.NotEqual(diff.Entity, diff.DatabaseValue); Assert.Contains(diff.Entity, AllEntities); Assert.Contains(diff.DatabaseValue, dbEntities); } }
public void EntityDiff_GetByRelationships() { // arrange var dbEntities = new HashSet <Dummy>(AllEntities.Select(e => new Dummy { Id = e.Id }).ToList()); EntityDiffs <Dummy> diffs = new EntityDiffs <Dummy>(AllEntities, dbEntities, Relationships); // act Dictionary <RelationshipAttribute, HashSet <Dummy> > toOnes = diffs.Entities.GetByRelationship <ToOne>(); Dictionary <RelationshipAttribute, HashSet <Dummy> > toManies = diffs.Entities.GetByRelationship <ToMany>(); Dictionary <RelationshipAttribute, HashSet <Dummy> > notTargeted = diffs.Entities.GetByRelationship <NotTargeted>(); Dictionary <RelationshipAttribute, HashSet <Dummy> > allRelationships = diffs.Entities.AffectedRelationships; // Assert AssertRelationshipDictionaryGetters(allRelationships, toOnes, toManies, notTargeted); var allEntitiesWithAffectedRelationships = allRelationships.SelectMany(kvp => kvp.Value).ToList(); NoRelationshipsEntities.ToList().ForEach(e => { Assert.DoesNotContain(e, allEntitiesWithAffectedRelationships); }); var requestEntitiesFromDiff = diffs.Entities; requestEntitiesFromDiff.ToList().ForEach(e => { Assert.Contains(e, AllEntities); }); var databaseEntitiesFromDiff = diffs.DatabaseValues; databaseEntitiesFromDiff.ToList().ForEach(e => { Assert.Contains(e, dbEntities); }); }