Esempio n. 1
0
        public void SetUpFromSql_SpecifiedStoredProcedureWithInvalidParametersToList_ReturnsEmptyEnumeration()
        {
            var testEntity1 = new TestEntity1 {
                Id = Guid.NewGuid()
            };
            var sqlParameters = new List <SqlParameter> {
                new SqlParameter("@xxxapplicationName", "Test Application"),
                new SqlParameter("@xxxdate", DateTime.Today),
                new SqlParameter("@xxxids", testEntity1.Id),
                new SqlParameter("@xxxidsSeparator", ',')
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddFromSqlResultFor(x => x.TestEntities, "ById", sqlParameters, new List <TestEntity1> {
                testEntity1
            });
            var mockedContext = builder.GetMockedDbContext();

            var actualResult = mockedContext.Set <TestEntity1>().FromSql("[dbo].[sp_GetLocationsById] @applicationName, @date, @ids, @idsSeparator",
                                                                         new List <SqlParameter> {
                new SqlParameter("@applicationName", "Test Application"),
                new SqlParameter("@date", DateTime.Today),
                new SqlParameter("@ids", testEntity1.Id),
                new SqlParameter("@idsSeparator", ',')
            }.ToArray()
                                                                         ).ToList();

            Assert.Multiple(() =>
            {
                Assert.IsNotNull(actualResult);
                Assert.IsFalse(actualResult.Any());
            });
        }
        public async Task SetUpQuery_AnyAsync_ReturnsTrue()
        {
            var testEntities = new List <TestEntity2> {
                new TestEntity2 {
                    Id = new Guid()
                }, new TestEntity2 {
                    Id = new Guid()
                }
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddSetUpFor(x => x.TestView, testEntities);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = await mockedContext.Query <TestEntity2>().AnyAsync();

            var actualResult2 = await mockedContext.Query <TestEntity2>().AnyAsync();

            Assert.Multiple(() =>
            {
                Assert.IsTrue(actualResult1);
                Assert.IsTrue(actualResult2);
            });
        }
        public void SetUpQueryUsingEnumerationByTypeOnMockPostBuilder_Where_ReturnsExpectedResult()
        {
            var expectedResult = new List <TestEntity2> {
                new TestEntity2 {
                    Id = Guid.NewGuid()
                }, new TestEntity2 {
                    Id = Guid.NewGuid()
                }
            };

            var builder         = new DbContextMockBuilder <TestContext>();
            var dbContextMock   = builder.GetDbContextMock();
            var mockedDbContext = builder.GetMockedDbContext();

            //Assuming that at this point our tests don't have access to the builder; but we have
            //retained the dbContextMock and mockedDbContext
            dbContextMock.SetUpDbQueryFor(expectedResult);

            var actualResult1 = mockedDbContext.Query <TestEntity2>().Where(x => x.Id != default(Guid));
            var actualResult2 = mockedDbContext.Query <TestEntity2>().Where(x => x.Id != default(Guid));

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(expectedResult, actualResult1);
                CollectionAssert.AreEquivalent(actualResult1, actualResult2);

                CollectionAssert.AreEquivalent(expectedResult, mockedDbContext.TestView.Where(x => x.Id != default(Guid)));
            });
        }
        public void SetUpQuery_Where_ReturnsExpectedResult()
        {
            var expectedResult = new List <TestEntity2> {
                new TestEntity2 {
                    Id = Guid.NewGuid()
                }, new TestEntity2 {
                    Id = Guid.NewGuid()
                }
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddSetUpFor(x => x.TestView, expectedResult);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = mockedContext.Query <TestEntity2>().Where(x => x.Id != default(Guid));
            var actualResult2 = mockedContext.Query <TestEntity2>().Where(x => x.Id != default(Guid));

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(expectedResult, actualResult1);
                CollectionAssert.AreEquivalent(actualResult1, actualResult2);

                CollectionAssert.AreEquivalent(expectedResult, mockedContext.TestView.Where(x => x.Id != default(Guid)));
            });
        }
        public async Task SetUpQuery_FirstAsync_ReturnsFirstEntity()
        {
            var testEntities = new List <TestEntity2> {
                new TestEntity2 {
                    Id = new Guid()
                }, new TestEntity2 {
                    Id = new Guid()
                }
            };
            var expectedResult = testEntities.First();

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddSetUpFor(x => x.TestView, testEntities);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = await mockedContext.Query <TestEntity2>().FirstAsync();

            var actualResult2 = await mockedContext.Query <TestEntity2>().FirstAsync();

            Assert.Multiple(() =>
            {
                Assert.AreSame(expectedResult, actualResult1);
                Assert.AreSame(actualResult1, actualResult2);
            });
        }
        public void SetUpQuery_First_ReturnsExpectedResult()
        {
            var dataSource = new List <TestEntity2> {
                new TestEntity2 {
                    Id = Guid.NewGuid()
                }, new TestEntity2 {
                    Id = Guid.NewGuid()
                }
            };

            var expectedResult = dataSource.First();

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddSetUpFor(x => x.TestView, dataSource);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = mockedContext.Query <TestEntity2>().First(x => x.Id == expectedResult.Id);
            var actualResult2 = mockedContext.Query <TestEntity2>().First(x => x.Id == expectedResult.Id);

            Assert.Multiple(() =>
            {
                Assert.AreSame(expectedResult, actualResult1);
                Assert.AreSame(actualResult1, actualResult2);

                Assert.AreSame(expectedResult, mockedContext.TestView.First(x => x.Id == expectedResult.Id));
            });
        }
Esempio n. 7
0
        public void SetUpFromSql_MockQueryProviderWithSpecifiedStoredProcedureAndParametersToList_ReturnsExpectedResult()
        {
            var expectedResult = new List <TestEntity1> {
                new TestEntity1()
            };
            var sqlParameters = new List <SqlParameter> {
                new SqlParameter("@SomeParameter2", "Value2")
            };

            var mockQueryProvider = new Mock <IQueryProvider>();

            mockQueryProvider.SetUpFromSql("sp_Specified", sqlParameters, expectedResult);

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddQueryProviderMockFor(x => x.TestEntities, mockQueryProvider);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = mockedContext.Set <TestEntity1>().FromSql("[dbo].[sp_Specified] @SomeParameter1 @SomeParameter2", new SqlParameter("@someparameter2", "Value2")).ToList();
            var actualResult2 = mockedContext.Set <TestEntity1>().FromSql("[dbo].[sp_Specified] @SomeParameter1 @SomeParameter2", new SqlParameter("@someparameter2", "Value2")).ToList();

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(expectedResult, actualResult1);
                CollectionAssert.AreEquivalent(actualResult1, actualResult2);
            });
        }
        public void GetMockedDbQuery_ByType_ReturnsDbQueryMock()
        {
            var expectedResult = new List <TestEntity2> {
                new TestEntity2(), new TestEntity2()
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddSetUpFor(x => x.TestView, expectedResult);

            var mockedDbQuery = builder.GetMockedDbQueryFor <TestEntity2>();

            CollectionAssert.AreEquivalent(expectedResult, mockedDbQuery.ToList());
        }
        public void GetDbQueryMock_ByExpression_ReturnsDbQueryMock()
        {
            var expectedResult = new List <TestEntity2> {
                new TestEntity2(), new TestEntity2()
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddSetUpFor(x => x.TestView, expectedResult);

            var dbQueryMock = builder.GetDbQueryMockFor(x => x.TestView);

            CollectionAssert.AreEquivalent(expectedResult, dbQueryMock.Object.ToList());
        }
Esempio n. 10
0
        public void GetMockedDbSet_ByExpression_ReturnsDbSetMock()
        {
            var expectedResult = new List <TestEntity1> {
                new TestEntity1(), new TestEntity1()
            };

            var builder       = new DbContextMockBuilder <TestContext>();
            var mockedContext = builder.GetMockedDbContext();

            mockedContext.Set <TestEntity1>().AddRange(expectedResult);
            mockedContext.SaveChanges();

            var mockedDbSet = builder.GetMockedDbSetFor(x => x.TestEntities);

            CollectionAssert.AreEquivalent(expectedResult, mockedDbSet.ToList());
        }
Esempio n. 11
0
        public void GetDbSetMock_ByType_ReturnsDbSetMock()
        {
            var expectedResult = new List <TestEntity1> {
                new TestEntity1(), new TestEntity1()
            };

            var builder       = new DbContextMockBuilder <TestContext>();
            var mockedContext = builder.GetMockedDbContext();

            mockedContext.Set <TestEntity1>().AddRange(expectedResult);
            mockedContext.SaveChanges();

            var dbSetMock = builder.GetDbSetMockFor <TestEntity1>();

            CollectionAssert.AreEquivalent(expectedResult, dbSetMock.Object.ToList());
        }
        public void SetUpQueryUsingEnumerationByTypeOnMockPostBuilder_ReturnsExpectedResult()
        {
            var expectedResult = new List <TestEntity2> {
                new TestEntity2(), new TestEntity2()
            };

            var builder         = new DbContextMockBuilder <TestContext>();
            var dbContextMock   = builder.GetDbContextMock();
            var mockedDbContext = builder.GetMockedDbContext();

            //Assuming that at this point our tests don't have access to the builder; but we have
            //retained the dbContextMock and mockedDbContext
            dbContextMock.SetUpDbQueryFor(expectedResult);

            CollectionAssert.AreEquivalent(expectedResult, mockedDbContext.TestView.ToList());
        }
Esempio n. 13
0
        public void Execute_SpecifiedSqlWithNoParametersThatDoesNotMatchSetUp_ThrowsException()
        {
            var commandText    = "asdf";
            var expectedResult = 1;

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddExecuteSqlCommandResult(commandText, new List <SqlParameter>(), expectedResult);

            var mockedContext = builder.GetMockedDbContext();

            Assert.Throws <NullReferenceException>(() =>
            {
                var result = mockedContext.Database.ExecuteSqlCommand("sp_NoParams");
            });
        }
Esempio n. 14
0
        public void AddAndPersist_Entity_Persists()
        {
            var testEntity1 = new TestEntity1();

            var builder       = new DbContextMockBuilder <TestContext>();
            var mockedContext = builder.GetMockedDbContext();

            mockedContext.Set <TestEntity1>().Add(testEntity1);
            mockedContext.SaveChanges();

            Assert.Multiple(() =>
            {
                Assert.AreNotEqual(default(Guid), testEntity1.Id);
                Assert.AreEqual(testEntity1, mockedContext.Set <TestEntity1>().Single());
                Assert.AreEqual(testEntity1, mockedContext.TestEntities.Single());
            });
        }
Esempio n. 15
0
        public void Execute_SpecifiedSqlWithNoParameters_ReturnsExpectedResult()
        {
            var commandText    = "sp_NoParams";
            var expectedResult = 1;

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddExecuteSqlCommandResult(commandText, new List <SqlParameter>(), expectedResult);
            var mockedContext = builder.GetMockedDbContext();

            var result1 = mockedContext.Database.ExecuteSqlCommand("sp_NoParams");
            var result2 = mockedContext.Database.ExecuteSqlCommand("sp_NoParams");

            Assert.Multiple(() =>
            {
                Assert.AreEqual(result1, result2);
                Assert.AreEqual(expectedResult, result1);
            });
        }
Esempio n. 16
0
        public void AddAndPersistWithSpecifiedDbContextAndDbSetSetUp_Entity_Persists()
        {
            var testEntity1 = new TestEntity1();

            var contextToMock = new TestContext(new DbContextOptionsBuilder <TestContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
            var builder       = new DbContextMockBuilder <TestContext>(contextToMock, false);

            builder.AddSetUpFor(x => x.TestEntities);
            var mockedContext = builder.GetMockedDbContext();

            mockedContext.Set <TestEntity1>().Add(testEntity1);
            mockedContext.SaveChanges();

            Assert.Multiple(() =>
            {
                Assert.AreNotEqual(default(Guid), testEntity1.Id);
                Assert.AreEqual(testEntity1, mockedContext.Set <TestEntity1>().Single());
                Assert.AreEqual(testEntity1, mockedContext.TestEntities.Single());
            });
        }
Esempio n. 17
0
        public void SetUpFromSql_AnyStoredProcedureWithNoParametersToList_ReturnsExpectedResult()
        {
            var expectedResult = new List <TestEntity1> {
                new TestEntity1()
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddFromSqlResultFor(x => x.TestEntities, expectedResult);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = mockedContext.Set <TestEntity1>().FromSql("sp_NoParams").ToList();
            var actualResult2 = mockedContext.Set <TestEntity1>().FromSql("sp_NoParams").ToList();

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(expectedResult, actualResult1);
                CollectionAssert.AreEquivalent(actualResult1, actualResult2);
            });
        }
        public async Task SetUpFromSql_AnyStoredProcedureWithNoParametersAsyncToList_ReturnsExpectedResult()
        {
            var expectedResult = new List <TestEntity2> {
                new TestEntity2(), new TestEntity2()
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddSetUpFor(x => x.TestView, expectedResult).AddFromSqlResultFor(x => x.TestView, expectedResult);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = await mockedContext.Query <TestEntity2>().FromSql("sp_NoParams").ToListAsync();

            var actualResult2 = await mockedContext.Query <TestEntity2>().FromSql("sp_NoParams").ToListAsync();

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(expectedResult, actualResult1);
                CollectionAssert.AreEquivalent(actualResult1, actualResult2);
            });
        }
Esempio n. 19
0
        public async Task AddAndPersistAsync_Enumeration_Persists()
        {
            var testEntities = new List <TestEntity1> {
                new TestEntity1(), new TestEntity1()
            };

            var builder       = new DbContextMockBuilder <TestContext>();
            var mockedContext = builder.GetMockedDbContext();

            await mockedContext.Set <TestEntity1>().AddRangeAsync(testEntities);

            await mockedContext.SaveChangesAsync();

            var result = mockedContext.Set <TestEntity1>().ToList();

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(testEntities, result);
                CollectionAssert.AreEquivalent(result, mockedContext.TestEntities.ToList());
            });
        }
Esempio n. 20
0
        public void SetUpSet_Any_ReturnsEnumeration()
        {
            var testEntities = new List <TestEntity1> {
                new TestEntity1(), new TestEntity1()
            };

            var builder       = new DbContextMockBuilder <TestContext>();
            var mockedContext = builder.GetMockedDbContext();

            mockedContext.Set <TestEntity1>().AddRange(testEntities);
            mockedContext.SaveChanges();

            var result1 = mockedContext.Set <TestEntity1>().Any();
            var result2 = mockedContext.Set <TestEntity1>().Any();

            Assert.Multiple(() =>
            {
                Assert.IsTrue(result1);
                Assert.IsTrue(result2);
            });
        }
Esempio n. 21
0
        public void Execute_SpecifiedSqlWithParameters_ReturnsExpectedResult()
        {
            var commandText   = "sp_WithParams";
            var sqlParameters = new List <SqlParameter> {
                new SqlParameter("@SomeParameter2", "Value2")
            };
            var expectedResult = 1;

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddExecuteSqlCommandResult(commandText, sqlParameters, expectedResult);
            var mockedContext = builder.GetMockedDbContext();

            var result1 = mockedContext.Database.ExecuteSqlCommand("[dbo.[sp_WithParams] @SomeParameter2", sqlParameters);
            var result2 = mockedContext.Database.ExecuteSqlCommand("[dbo.[sp_WithParams] @SomeParameter2", sqlParameters);

            Assert.Multiple(() =>
            {
                Assert.AreEqual(result1, result2);
                Assert.AreEqual(expectedResult, result1);
            });
        }
        public void SetUpQuery_ToList_ReturnsEnumeration()
        {
            var expectedResult = new List <TestEntity2> {
                new TestEntity2(), new TestEntity2()
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddSetUpFor(x => x.TestView, expectedResult);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = mockedContext.Query <TestEntity2>().ToList();
            var actualResult2 = mockedContext.Query <TestEntity2>().ToList();

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(expectedResult, actualResult1);
                CollectionAssert.AreEquivalent(actualResult1, actualResult2);

                CollectionAssert.AreEquivalent(expectedResult, mockedContext.TestView.ToList());
            });
        }
Esempio n. 23
0
        public void SetUpSet_ToList_ReturnsEnumeration()
        {
            var expectedResult = new List <TestEntity1> {
                new TestEntity1(), new TestEntity1()
            };

            var builder       = new DbContextMockBuilder <TestContext>();
            var mockedContext = builder.GetMockedDbContext();

            mockedContext.Set <TestEntity1>().AddRange(expectedResult);
            mockedContext.SaveChanges();

            var result1 = mockedContext.Set <TestEntity1>().ToList();
            var result2 = mockedContext.Set <TestEntity1>().ToList();

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(result1, result2);
                CollectionAssert.AreEquivalent(expectedResult, result1);

                CollectionAssert.AreEquivalent(expectedResult, mockedContext.TestEntities.ToList());
            });
        }
Esempio n. 24
0
        public void SetUpFromSql_SpecifiedStoredProcedureWithNullParameterValueToList_ReturnsExpectedResult()
        {
            var expectedResult = new List <TestEntity1> {
                new TestEntity1()
            };
            var sqlParameters = new List <SqlParameter> {
                new SqlParameter("@SomeParameter2", SqlDbType.DateTime)
            };

            var builder = new DbContextMockBuilder <TestContext>();

            builder.AddFromSqlResultFor(x => x.TestEntities, "sp_Specified", sqlParameters, expectedResult);
            var mockedContext = builder.GetMockedDbContext();

            var actualResult1 = mockedContext.Set <TestEntity1>().FromSql("[dbo].[sp_Specified] @SomeParameter1 @SomeParameter2", new SqlParameter("@someparameter2", SqlDbType.DateTime)).ToList();
            var actualResult2 = mockedContext.Set <TestEntity1>().FromSql("[dbo].[sp_Specified] @SomeParameter1 @SomeParameter2", new SqlParameter("@someparameter2", SqlDbType.DateTime)).ToList();

            Assert.Multiple(() =>
            {
                CollectionAssert.AreEquivalent(expectedResult, actualResult1);
                CollectionAssert.AreEquivalent(actualResult1, actualResult2);
            });
        }