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)); }); }
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()); }
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()); }
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()); }
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"); }); }
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()); }); }
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); }); }
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()); }); }
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); }); }
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()); }); }
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); }); }
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()); }); }
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()); }); }
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); }); }