public void UpdateUpdates(MockPoco input) { // Arrange const string expected = "newValue1"; var testSettings = new TestProjectSettings(); DbContext testContext = null; Repository <MockPoco> tested = null; try { testContext = new MockPocoContext(testSettings); tested = new Repository <MockPoco>(testContext); testContext.Database.EnsureCreated(); testContext.Add(input); testContext.SaveChanges(); // Act input.Value = expected; testContext.SaveChanges(); // Assert Assert.Equal(input.Value, testContext.Set <MockPoco>().First().Value); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void AddRangeAddsRange(List <MockPoco> input) { // Arrange var testSettings = new TestProjectSettings(); DbContext testContext = null; Repository <MockPoco> tested = null; try { testContext = new MockPocoContext(testSettings); tested = new Repository <MockPoco>(testContext); testContext.Database.EnsureCreated(); // Act testContext.AddRange(input); testContext.SaveChanges(); // Assert Assert.Equal(input.Count, testContext.Set <MockPoco>().Count()); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void CountReturnsAccurateCount(List <MockPoco> input) { // Arrange var testSettings = new TestProjectSettings(); var inputList = input.ToList(); DbContext testContext = null; Repository <MockPoco> tested = null; var expected = input.Count; try { testContext = new MockPocoContext(testSettings); tested = new Repository <MockPoco>(testContext); testContext.Database.EnsureCreated(); testContext.AddRange(inputList); testContext.SaveChanges(); // Act var actual = tested.Count(); // Assert Assert.Equal(expected, actual); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void PredicateGetAllReturnsAccurateResult(List <MockPoco> input) { // Arrange var testSettings = new TestProjectSettings(); var inputList = input.ToList(); DbContext testContext = null; Repository <MockPoco> tested = null; var predicate = new Func <MockPoco, bool>(x => x.Value == "test3"); var expected = input.Where(predicate); try { testContext = new MockPocoContext(testSettings); tested = new Repository <MockPoco>(testContext); testContext.Database.EnsureCreated(); testContext.AddRange(inputList); testContext.SaveChanges(); // Act var actual = tested.GetAll(x => predicate(x)); // Assert Assert.Equal(expected, actual); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void AddStock(Company company) { // Arrange var testSettings = new TestProjectSettings(); StockContext testContext = null; Repository <Company> tested = null; try { testContext = new StockContext(testSettings); testContext.Database.EnsureCreated(); tested = new Repository <Company>(testContext); testContext.Add(company); var changesCount = testContext.SaveChanges(); // Act var actual = testContext.Set <Company>().Count(); var expected = 1; // Assert Assert.Equal(expected, actual); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void RemoveSpecificStockThrowsWhenNull() { // Arrange var testSettings = new TestProjectSettings(); StockContext testContext = null; Repository <Company> tested = null; try { testContext = new StockContext(testSettings); testContext.Database.EnsureCreated(); tested = new Repository <Company>(testContext); // Act & Assert Assert.Throws <ArgumentNullException>(() => tested.Remove(null)); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void UnitOfWorkCommits(Company input) { // Arrange var testSettings = new TestProjectSettings(); DbContext testContext = null; StockUnitOfWork tested = null; try { testContext = new StockContext(testSettings); testContext.Database.EnsureCreated(); tested = new StockUnitOfWork(testContext); // Act tested.StockRepository.Add(input); tested.Complete(); var expected = 1; var actual = tested.StockRepository.Count(); // Assert Assert.Equal(expected, actual); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void UnitOfWorkDoNotShowAsExisitngWithoutCommit(Company input) { // Arrange var testSettings = new TestProjectSettings(); DbContext testContext = null; StockUnitOfWork tested = null; try { testContext = new StockContext(testSettings); testContext.Database.EnsureCreated(); tested = new StockUnitOfWork(testContext); // Act tested.StockRepository.Add(input); var expected = 0; var actual = tested.StockRepository.GetAll().ToList().Count; // Assert Assert.Equal(expected, actual); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void AddAdds(Company input) { // Arrange var testSettings = new TestProjectSettings(); DbContext testContext = null; StockQuoteRepository tested = null; try { testContext = new StockTestContext(testSettings); tested = new StockQuoteRepository(testContext); testContext.Database.EnsureCreated(); // Act testContext.Add(input.FirstQuote); testContext.SaveChanges(); // Assert Assert.Equal(input.FirstQuote, testContext.Set <StockQuote>().First()); } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void GetTradingDatesGetsOnlyTradingDatesInOpenRangeOrderedAscending(List <Company> input) { // Arrange var testSettings = new TestProjectSettings(); DbContext testContext = null; StockQuoteRepository tested = null; try { testContext = new StockTestContext(testSettings); tested = new StockQuoteRepository(testContext); testContext.Database.EnsureCreated(); testContext.AddRange(input.SelectMany(x => x.Quotes)); testContext.SaveChanges(); // Act var result = tested.GetTradingDates(new DateTime(2017, 01, 01), new DateTime(2018, 01, 01)); // Assert Assert.Equal(250, result.Count); for (var i = 1; i < result.Count; i++) { Assert.True(result[i] > result[i - 1]); } } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void GetAllQuotesFromPreviousSessionGetsOnlyQuotesFromLastSession(List <Company> input) { // Arrange var testSettings = new TestProjectSettings(); DbContext testContext = null; StockQuoteRepository tested = null; try { testContext = new StockTestContext(testSettings); tested = new StockQuoteRepository(testContext); testContext.Database.EnsureCreated(); testContext.AddRange(input.SelectMany(x => x.Quotes)); testContext.SaveChanges(); var date = new DateTime(2017, 01, 01); // Act var result = tested.GetAllQuotesFromPreviousSession(date); // Assert Assert.Equal(3, result.Count); foreach (var quote in result) { Assert.Equal(new DateTime(2016, 12, 30), quote.DateParsed); } } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void GetNTradingDatesGetsOnlyTradingDatesFromLastNSessionsOrderedDescending(List <Company> input) { // Arrange var testSettings = new TestProjectSettings(); DbContext testContext = null; StockQuoteRepository tested = null; try { testContext = new StockTestContext(testSettings); tested = new StockQuoteRepository(testContext); testContext.Database.EnsureCreated(); testContext.AddRange(input.Where(x => x.Ticker == "MBANK").SelectMany(x => x.Quotes)); testContext.SaveChanges(); // Act var result = tested.GetAllQuotesFromPreviousNDays(new DateTime(2017, 01, 01), 10); // Assert Assert.Equal(10, result.Count); for (var i = 1; i < result.Count; i++) { Assert.True(result[i].DateParsed > result[i - 1].DateParsed); } } finally { testContext?.Database.EnsureDeleted(); tested?.Dispose(); testContext?.Dispose(); } }
public void FactoryProvidesNewInstanceEverytimeItsCalled() { // Arrange var testSettings = new TestProjectSettings(); StockContext testContext = null; StockUnitOfWorkFactory ufo = null; StockUnitOfWork uow = null; StockUnitOfWork uow2 = null; try { testContext = new StockContext(testSettings); ufo = new StockUnitOfWorkFactory(testContext); // Act uow = ufo.GetInstance(); uow2 = ufo.GetInstance(); // Assert Assert.NotEqual(uow, uow2); } finally { testContext?.Dispose(); ufo?.Dispose(); uow?.Dispose(); } }
public void FactoryDisposes() { // Arrange var testSettings = new TestProjectSettings(); var testContext = new StockContext(testSettings); var ufo = new StockUnitOfWorkFactory(testContext); var uow = ufo.GetInstance(); ufo.Dispose(); // Act & Assert Assert.Throws <ObjectDisposedException>(() => ufo.GetInstance()); Assert.Throws <ObjectDisposedException>(() => uow.Complete()); Assert.Throws <ObjectDisposedException>(() => testContext.Company.Find(1)); }
public async Task GetLatestSessionInDbDateReturnsLastSessionDateInDb(List <Company> input) { // Arrange var testSettings = new TestProjectSettings(); DbContext testContext = null; StockQuoteRepository tested = null; try { testContext = new StockTestContext(testSettings); tested = new StockQuoteRepository(testContext); await testContext.Database.EnsureCreatedAsync(); await testContext.AddRangeAsync(input.SelectMany(x => x.Quotes)); await testContext.SaveChangesAsync(); var date = new DateTime(2018, 02, 09); // Act var result = await tested.GetLatestSessionInDbDateAsync(); // Assert Assert.Equal(date.Date, result.Date); } finally { if (testContext != null) { await testContext.Database.EnsureDeletedAsync(); if (tested != null) { await tested.DisposeAsync(); } await testContext.DisposeAsync(); } } }