示例#1
0
        public void Save_NewFakeComplexEntity_MatchesExpected()
        {
            var subSubEntity = new SubSubEntity("SubSubUniqueName", 6445);
            var subEntity    = new SubEntity("SubUniqueName", 234, subSubEntity, 67893);
            var createdBy    = new CreatedBy("CreateUniqueName", 1122);
            var modifiedBy   = new ModifiedBy("ModifiedBy", 454);
            var expected     = new ComplexEntity("UniqueName", subEntity, FakeEnumeration.FirstFake, createdBy)
            {
                ModifiedBy   = modifiedBy,
                ModifiedTime = DateTimeOffset.Now.AddHours(1)
            };

            var repositoryProvider = new Mock <IRepositoryProvider>();
            var definitionProvider = new DataAnnotationsDefinitionProvider();

            repositoryProvider.Setup(provider => provider.EntityDefinitionProvider).Returns(definitionProvider);

            repositoryProvider.Setup(provider => provider.FirstOrDefault(It.IsAny <EntitySelection <ComplexRaisedRow> >()))
            .Returns(default(ComplexRaisedRow));

            repositoryProvider.Setup(provider => provider.Insert(It.IsAny <ComplexRaisedRow>()))
            .Callback((ComplexRaisedRow row) => row.ComplexEntityId = 43)
            .Returns((ComplexRaisedRow row) => row);

            using (var provider = repositoryProvider.Object)
            {
                var target = new EntityRepository <ComplexEntity, ComplexRaisedRow>(provider, this.mapper);
                var actual = target.Save(expected);
                Assert.IsNotNull(actual.SubEntity);
                Assert.IsNotNull(actual.SubEntity.SubSubEntity);
                Assert.IsNotNull(actual.CreatedBy);
                Assert.IsNotNull(actual.ModifiedBy);
                Assert.AreEqual(6445, actual.SubSubEntity.FakeSubSubEntityId);
                Assert.AreSame(expected.SubEntity.SubSubEntity, actual.SubEntity.SubSubEntity);
                Assert.AreEqual(67893, actual.SubEntity.FakeSubEntityId);
                Assert.AreEqual(expected.SubEntity, actual.SubEntity);
                Assert.AreEqual(1122, actual.CreatedBy.FakeMultiReferenceEntityId);
                Assert.AreEqual(expected.CreatedBy, actual.CreatedBy);
                Assert.AreEqual(454, actual.ModifiedBy.FakeMultiReferenceEntityId);
                Assert.AreEqual(expected.ModifiedBy, actual.ModifiedBy);
                Assert.AreEqual(43, actual.ComplexEntityId);
                Assert.AreEqual(expected, actual, string.Join(Environment.NewLine, expected.GetDifferences(actual)));
            }
        }
示例#2
0
        public void UpdateSingle_ModelInput_MappedToEntity()
        {
            var repositoryProvider = new Mock <IRepositoryProvider>();
            var definitionProvider = new DataAnnotationsDefinitionProvider();

            repositoryProvider.Setup(provider => provider.EntityDefinitionProvider).Returns(definitionProvider);
            repositoryProvider.Setup(provider => provider.Update(It.IsAny <UpdateSet <SubSubRow> >())).Verifiable();

            using (var provider = repositoryProvider.Object)
            {
                var repository   = new EntityRepository <SubSubEntity, SubSubRow>(provider, this.mapper);
                var subSubEntity = new SubSubEntity("myUniqueName", 34)
                {
                    Description = "my description"
                };

                repository.UpdateSingle(34, subSubEntity, entity => entity.Description);
            }

            repositoryProvider.Verify();
        }
示例#3
0
        public async Task UpdateSingleAsync_ModelInput_MappedToEntity()
        {
            var repositoryProvider = new Mock <IRepositoryProvider>();
            var definitionProvider = new DataAnnotationsDefinitionProvider();

            repositoryProvider.Setup(provider => provider.EntityDefinitionProvider).Returns(definitionProvider);
            repositoryProvider.Setup(provider => provider.UpdateAsync(It.IsAny <UpdateSet <SubSubRow> >(), It.IsAny <CancellationToken>())).Verifiable();

            await using (var provider = repositoryProvider.Object)
            {
                var repository   = new EntityRepository <SubSubEntity, SubSubRow>(provider, this.mapper);
                var subSubEntity = new SubSubEntity("myUniqueName", 34)
                {
                    Description = "my description"
                };

                await repository.UpdateSingleAsync(34, subSubEntity, CancellationToken.None, entity => entity.Description).ConfigureAwait(false);
            }

            repositoryProvider.Verify();
        }
示例#4
0
        public void Save_UpdatedFakeComplexEntity_MatchesExpected()
        {
            var subSubEntity = new SubSubEntity("SubSubUniqueName", 45)
            {
                Description = "OriginalSubSub"
            };
            var subEntity = new SubEntity("SubUniqueName", 234, subSubEntity, 16)
            {
                Description = "OriginalSub"
            };
            var createdBy = new CreatedBy("CreateUniqueName", 432)
            {
                Description = "OriginalCreatedBy"
            };
            var modifiedBy = new ModifiedBy("ModifiedBy", 433)
            {
                Description = "OriginalModifiedBy"
            };
            var creationTime = DateTimeOffset.Now.AddDays(-1);
            var baseline     = new ComplexEntity("UniqueName", subEntity, FakeEnumeration.FirstFake, createdBy, creationTime, 22)
            {
                Description  = "OriginalComplexEntity",
                ModifiedBy   = modifiedBy,
                ModifiedTime = DateTimeOffset.Now.AddHours(1)
            };

            var repositoryProvider = new Mock <IRepositoryProvider>();
            var definitionProvider = new DataAnnotationsDefinitionProvider();

            repositoryProvider.Setup(provider => provider.EntityDefinitionProvider).Returns(definitionProvider);

            repositoryProvider.Setup(provider => provider.FirstOrDefault(It.IsAny <EntitySet <ComplexRaisedRow> >()))
            .Returns(this.mapper.Map <ComplexRaisedRow>(baseline));

            repositoryProvider.Setup(
                provider => provider.Contains(It.Is <IEntitySet>(selection => (int?)selection.PropertyValues.FirstOrDefault() == 22)))
            .Returns(true);

            repositoryProvider.Setup(provider => provider.Update(It.IsAny <UpdateSet <ComplexRaisedRow> >())).Returns(1);

            using (var provider = repositoryProvider.Object)
            {
                var newModifiedBy = new ModifiedBy("ModifiedBy", 433)
                {
                    Description = "UpdatedModifiedBy"
                };

                var target   = new EntityRepository <ComplexEntity, ComplexRaisedRow>(provider, this.mapper);
                var expected = target.FirstOrDefault(22);
                expected.Description              = "UpdatedEntity";
                expected.ModifiedBy               = newModifiedBy;
                expected.ModifiedTime             = DateTimeOffset.Now.AddHours(1);
                expected.SubEntity.Description    = "ModifiedSub";
                expected.SubSubEntity.Description = "ModifiedSubSub";

                var actual = target.Save(expected);
                Assert.IsNotNull(actual.SubEntity);
                Assert.IsNotNull(actual.SubEntity.SubSubEntity);
                Assert.IsNotNull(actual.CreatedBy);
                Assert.IsNotNull(actual.ModifiedBy);
                Assert.AreEqual(16, actual.SubEntity.FakeSubEntityId);
                Assert.AreEqual(expected.SubEntity, actual.SubEntity);
                Assert.AreEqual(45, actual.SubSubEntity.FakeSubSubEntityId);
                Assert.AreEqual(expected.SubEntity.SubSubEntity, actual.SubEntity.SubSubEntity);
                Assert.AreEqual(432, actual.CreatedBy.FakeMultiReferenceEntityId);
                Assert.AreEqual(
                    baseline.CreatedBy,
                    actual.CreatedBy,
                    string.Join(Environment.NewLine, baseline.CreatedBy.GetDifferences(actual.CreatedBy)));

                Assert.AreEqual(creationTime, actual.CreationTime);
                Assert.AreEqual(433, actual.ModifiedBy.FakeMultiReferenceEntityId);
                Assert.AreEqual(expected.ModifiedBy, actual.ModifiedBy);
                Assert.AreEqual(expected.ModifiedTime, actual.ModifiedTime);
                Assert.AreEqual(22, actual.ComplexEntityId);
                Assert.AreEqual(expected, actual, string.Join(Environment.NewLine, expected.GetDifferences(actual)));
            }
        }