Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            });
        }