コード例 #1
0
ファイル: AddShould.cs プロジェクト: AquaWorld/AquaWorld
        public void NotThrowExceptionWhenPassedArgumentIsValid()
        {
            // Arrange
            var mockedSet    = new Mock <DbSet <ICreature> >();
            var mockedAdvert = new Mock <ICreature>();

            mockedSet.SetupAllProperties();
            var mockedDbContext = new Mock <IAquaWorldDbContext>();
            var fakeEntry       = (DbEntityEntry <ICreature>)FormatterServices.GetSafeUninitializedObject(typeof(DbEntityEntry <ICreature>));

            // Act
            mockedDbContext.Setup(x => x.Set <ICreature>()).Returns(mockedSet.Object);
            mockedDbContext.Setup(x => x.Entry(It.IsAny <ICreature>())).Returns(fakeEntry);
            var dataProvider = new EfAquaWorldDataProvider <ICreature>(mockedDbContext.Object);

            try
            {
                dataProvider.Add(mockedAdvert.Object);
            }
            catch (NullReferenceException)
            {
            }

            // Assert
            mockedDbContext.Verify(x => x.Entry(mockedAdvert.Object), Times.AtLeastOnce);
        }
コード例 #2
0
        public void WorkCorrectlyIfDbContextPassedIsValid()
        {
            // Arrange
            var mockedDbContext = new Mock <IAquaWorldDbContext>();
            var mockedModel     = new Mock <DbSet <ICreature> >();

            // Act
            mockedDbContext.Setup(x => x.Set <ICreature>()).Returns(mockedModel.Object);
            var dataProvider = new EfAquaWorldDataProvider <ICreature>(mockedDbContext.Object);

            // Assert
            Assert.That(dataProvider, Is.Not.Null);
        }
コード例 #3
0
        public void SetDbSetCorrectlyWhenValidArgumentsPassed()
        {
            // Arrange
            var mockedContext = new Mock <IAquaWorldDbContext>();
            var mockedModel   = new Mock <DbSet <ICreature> >();

            // Act
            mockedContext.Setup(x => x.Set <ICreature>()).Returns(mockedModel.Object);
            var repository = new EfAquaWorldDataProvider <ICreature>(mockedContext.Object);

            // Assert
            Assert.That(repository.DbSet, Is.Not.Null);
            Assert.That(repository.DbSet, Is.EqualTo(mockedModel.Object));
        }
コード例 #4
0
        public void AllShouldReturnEntitiesOfGivenSet()
        {
            // Arrange
            var mockedDbContext = new Mock <IAquaWorldDbContext>();
            var mockedSet       = new Mock <DbSet <ICreature> >();

            // Act
            mockedDbContext.Setup(x => x.Set <ICreature>()).Returns(mockedSet.Object);
            var dataProvider = new EfAquaWorldDataProvider <ICreature>(mockedDbContext.Object);

            // Assert
            Assert.NotNull(dataProvider.All());
            Assert.IsInstanceOf(typeof(DbSet <ICreature>), dataProvider.All());
        }
コード例 #5
0
        public void BeCalledWhenDisposingProvider()
        {
            // Arrange
            var mockedSet       = new Mock <DbSet <ICreature> >();
            var mockedDbContext = new Mock <IAquaWorldDbContext>();

            mockedDbContext.Setup(x => x.Set <ICreature>()).Returns(mockedSet.Object);
            var dataProvider = new EfAquaWorldDataProvider <ICreature>(mockedDbContext.Object);

            // Act
            dataProvider.SaveChanges();

            // Assert
            mockedDbContext.Verify(x => x.SaveChanges(), Times.Once);
        }
コード例 #6
0
        public void ThrowNullReferenceExceptionWhenPassedArgumentIsNull()
        {
            // Arrange
            var mockedDbContext = new Mock <IAquaWorldDbContext>();
            var mockedSet       = new Mock <DbSet <ICreature> >();

            // Act
            mockedDbContext.Setup(set => set.Set <ICreature>()).Returns(mockedSet.Object);
            var       dataProvider = new EfAquaWorldDataProvider <ICreature>(mockedDbContext.Object);
            ICreature entity       = null;

            // Assert
            Assert.That(() => dataProvider.Update(entity),
                        Throws.InstanceOf <NullReferenceException>());
        }
コード例 #7
0
        public void ReturnCorrectResultWhenParameterIsValid()
        {
            // Arrange
            var mockedDbSet     = new Mock <DbSet <ICreature> >();
            var mockedDbContext = new Mock <IAquaWorldDbContext>();
            var fakeAdvert      = new Mock <ICreature>();
            var validId         = 15;

            // Act
            mockedDbContext.Setup(mock => mock.Set <ICreature>()).Returns(mockedDbSet.Object);
            var dataProvider = new EfAquaWorldDataProvider <ICreature>(mockedDbContext.Object);

            mockedDbSet.Setup(x => x.Find(It.IsAny <int>())).Returns(fakeAdvert.Object);

            // Assert
            Assert.That(dataProvider.GetById(validId), Is.Not.Null);
            Assert.AreEqual(dataProvider.GetById(validId), fakeAdvert.Object);
        }
コード例 #8
0
        public void BeCalledWhenInvoked()
        {
            // Arrange
            var mockedSet       = new Mock <DbSet <ICreature> >();
            var mockedDbContext = new Mock <IAquaWorldDbContext>();

            mockedDbContext.Setup(x => x.Set <ICreature>()).Returns(mockedSet.Object);
            var dataProvider = new EfAquaWorldDataProvider <ICreature>(mockedDbContext.Object);
            var mockedAdvert = new Mock <ICreature>();

            // Act
            try
            {
                dataProvider.Detach(mockedAdvert.Object);
            }
            catch (NullReferenceException) { };

            // Assert
            mockedDbContext.Verify(x => x.Entry(mockedAdvert.Object), Times.AtLeastOnce);
        }
コード例 #9
0
        public void NotThrowExceptionWhenPassedArgumentIsValid()
        {
            // Arrange
            var mockedSet    = new Mock <DbSet <ICreature> >();
            var mockedAdvert = new Mock <ICreature>();

            mockedSet.SetupAllProperties();
            var mockedDbContext = new Mock <IAquaWorldDbContext>();

            // Act
            mockedDbContext.Setup(x => x.Set <ICreature>()).Returns(mockedSet.Object);
            var dataProvider = new EfAquaWorldDataProvider <ICreature>(mockedDbContext.Object);

            try
            {
                dataProvider.Update(mockedAdvert.Object);
            }
            catch (NullReferenceException)
            {
            }

            // Assert
            mockedDbContext.Verify(x => x.Entry(mockedAdvert.Object), Times.AtLeastOnce);
        }