public void UpsertStockCommandHandler_EmptyDbUpsertList_ListSaved() { //given var stocks = new[] { new Stock { Name = "test1" }, new Stock { Name = "test2" } }; var repository = LiteDbHelper.CreateMemoryDb(); var handler = new UpsertStocksCommandHandler(repository); var command = new UpsertStocksCommand(stocks); //when handler.Execute(command); //then var orderedStocksInDatabase = repository.Database.Query <Stock>().OrderBy(x => x.Id); Assert.Equal(stocks.OrderBy(x => x.Id), orderedStocksInDatabase); }
public void TagQueryHandler_TagQueryNotEmptyDatabase_Array() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new TagQueryHandler(repository); var query = new TagQuery(); var tags = new[] { new Tag { Name = "tag1" }, new Tag { Name = "tag2" }, new Tag { Name = "tag3" }, new Tag { Name = "tag4" }, new Tag { Name = "tag5" }, }; repository.Database.UpsertBulk(tags); //when var result = handler.Execute(query); //then Assert.Equal(tags.OrderBy(x => x.Id), result.OrderBy(x => x.Id)); }
public void Query_NotEmptyDbFilter_FilteredArray() { //given var repo = LiteDbHelper.CreateMemoryDb(); var input = new[] { new Tag { Name = "a" }, new Tag { Name = "b" }, new Tag { Name = "c" }, new Tag(), new Tag(), }; repo.Database.UpsertBulk(input); //when var result = repo.Database.Query <Tag>(x => !string.IsNullOrEmpty(x.Name)); //then Assert.Equal(input.Where(x => !string.IsNullOrEmpty(x.Name)).OrderBy(x => x.Id), result.OrderBy(x => x.Id)); }
public void UpsertSearchStateCommandHandler_EmptyDbUpsertListOfNamedObjects_ListSaved() { //given var searchStates = new[] { new SearchState { Name = "test1" }, new SearchState { Name = "test2" } }; var repository = LiteDbHelper.CreateMemoryDb(); var handler = new UpsertSearchStateCommandHandler(repository); var command = new UpsertSearchStateCommand(searchStates); //when handler.Execute(command); //then var orderedSearchStatesInDatabase = repository.Database.Query <SearchState>().OrderBy(x => x.Id); Assert.Equal(searchStates.OrderBy(x => x.Id), orderedSearchStatesInDatabase); }
public void StockQueryHandler_StockQueryNotEmptyDatabase_Array() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new StockQueryHandler(repository); var query = new StockQuery(); var stocks = new[] { new CashManager.Data.DTO.Stock(new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1)) { Name = "1", IsUserStock = true, Balance = new Balance { Value = 12.34m } }, new CashManager.Data.DTO.Stock(new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2)) { Name = "2", IsUserStock = false } }; repository.Database.GetCollection <CashManager.Data.DTO.Stock>().InsertBulk(stocks); //when var result = handler.Execute(query); //then Assert.Equal(stocks, result); Assert.Equal(stocks[0].Balance, result[0].Balance); Assert.Equal(stocks[0].Balance.Value, result[0].Balance.Value); }
public void UpsertCategoriesCommandHandler_EmptyDbUpsertList_ListSaved() { //given var categories = new[] { new Category { Name = "test1" }, new Category { Name = "test2" } }; var repository = LiteDbHelper.CreateMemoryDb(); var handler = new UpsertCategoriesCommandHandler(repository); var command = new UpsertCategoriesCommand(categories); //when handler.Execute(command); //then var orderedCategoryInDatabase = repository.Database.Query <Category>().OrderBy(x => x.Id); Assert.Equal(categories.OrderBy(x => x.Id), orderedCategoryInDatabase); }
public void UpsertTransactionCommandHandler_EmptyDbUpsertList_ListSaved() { //given var transactionTypes = new[] { new TransactionType { Name = "t1", Outcome = true } }; var repository = LiteDbHelper.CreateMemoryDb(); var handler = new UpsertTransactionTypesCommandHandler(repository); var command = new UpsertTransactionTypesCommand(transactionTypes); //when handler.Execute(command); //then var orderedTransactionTypesInDatabase = repository.Database.Query <TransactionType>().OrderBy(x => x.Id).ToArray(); var orderedTransactionTypes = transactionTypes.OrderBy(x => x.Id).ToArray(); Assert.Equal(orderedTransactionTypes, orderedTransactionTypesInDatabase); Assert.Equal(orderedTransactionTypes.Select(x => x.Name), orderedTransactionTypesInDatabase.Select(x => x.Name)); Assert.Equal(orderedTransactionTypes.Select(x => x.Id), orderedTransactionTypesInDatabase.Select(x => x.Id)); Assert.Equal(orderedTransactionTypes.Select(x => x.IsDefault), orderedTransactionTypesInDatabase.Select(x => x.IsDefault)); Assert.Equal(orderedTransactionTypes.Select(x => x.Income), orderedTransactionTypesInDatabase.Select(x => x.Income)); Assert.Equal(orderedTransactionTypes.Select(x => x.Outcome), orderedTransactionTypesInDatabase.Select(x => x.Outcome)); }
public void UpsertTransactionCommandHandler_EmptyDbUpsertOneObject_ObjectSaved() { //given var transactions = new[] { new Transaction { Notes = new List <string> { "test1" }, Positions = new List <Position> { new Position { Title = "p1" } } } }; var repository = LiteDbHelper.CreateMemoryDb(); var handler = new UpsertTransactionsCommandHandler(repository); var command = new UpsertTransactionsCommand(transactions); //when handler.Execute(command); //then var orderedTransactionsInDatabase = repository.Database.Query <Transaction>().OrderBy(x => x.Id); Assert.Equal(transactions.OrderBy(x => x.Id), orderedTransactionsInDatabase); }
public void CategoryQueryHandler_CategoryQueryNotEmptyDatabase_Array() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new CategoryQueryHandler(repository); var query = new CategoryQuery(); var rootCategory = new Category(new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1)) { Name = "1", Parent = null }; var categories = new[] { rootCategory, new Category(new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2)) { Name = "2", Parent = rootCategory } }; repository.Database.GetCollection <Category>().InsertBulk(categories); //when var result = handler.Execute(query); //then Assert.Equal(categories, result); }
public void TransactionTypesQueryHandler_TransactionTypesQueryNotEmptyDatabaseWithQuery_MatchingArray() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new TransactionTypesQueryHandler(repository); Expression <Func <TransactionType, bool> > linqQuery = x => x.IsDefault && x.Outcome; var query = new TransactionTypesQuery(linqQuery); var transactions = new[] { new TransactionType { Income = true, IsDefault = true, Name = "income" }, new TransactionType { Outcome = true, IsDefault = true, Name = "outcome" }, }; repository.Database.GetCollection <TransactionType>().InsertBulk(transactions); var matchingTransactions = transactions.AsQueryable().Where(linqQuery).ToArray(); //when var result = handler.Execute(query); //then Assert.Equal(matchingTransactions.Length, result.Length); Assert.Equal(matchingTransactions, result); }
public void TransactionQueryHandler_TransactionQueryNotEmptyDatabaseWithQuery_MatchingArray() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new TransactionQueryHandler(repository); Expression <Func <Transaction, bool> > linqQuery = x => x.Title.Contains("1"); var query = new TransactionQuery(linqQuery); var transactions = new[] { new Transaction(new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1)) { Title = "t1" }, new Transaction(new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2)) { Title = "t2" } }; repository.Database.GetCollection <Transaction>().InsertBulk(transactions); var matchingTransactions = transactions.AsQueryable().Where(linqQuery).ToArray(); //when var result = handler.Execute(query); //then Assert.Equal(matchingTransactions.Length, result.Length); Assert.Equal(matchingTransactions, result); }
public void UpsertStockCommandHandler_EmptyDbUpsertOneObject_ObjectSaved() { //given var stocks = new[] { new Stock { Name = "test1", Balance = new Balance { Value = 12.45m } } }; var repository = LiteDbHelper.CreateMemoryDb(); var handler = new UpsertStocksCommandHandler(repository); var command = new UpsertStocksCommand(stocks); //when handler.Execute(command); //then var orderedStocksInDatabase = repository.Database.Query <Stock>().OrderBy(x => x.Id).ToArray(); Assert.Equal(stocks.OrderBy(x => x.Id), orderedStocksInDatabase); Assert.Equal(stocks[0].Balance, orderedStocksInDatabase[0].Balance); Assert.Equal(stocks[0].Balance.Value, orderedStocksInDatabase[0].Balance.Value); }
public void Query_EmptyDb_Empty() { //given var repo = LiteDbHelper.CreateMemoryDb(); //when var result = repo.Database.Query <Dto>(); //then Assert.Empty(result); }
public void Remove_Null_0() { //given var repo = LiteDbHelper.CreateMemoryDb(); //when int result = repo.Database.Remove <Dto>(null); //then Assert.Equal(0, result); }
public void UpsertBulk_Nulls_0() { //given var repo = LiteDbHelper.CreateMemoryDb(); Dto[] input = { null, null, null }; //when int result = repo.Database.UpsertBulk(input); //then Assert.Equal(0, result); }
public void Upsert_NotNullNotInDbAlQuery_TrueAndObjectInDb() { //given var repo = LiteDbHelper.CreateMemoryDb(); var element = new Dto(); //when bool result = repo.Database.Upsert(element); //then Assert.True(result); Assert.Equal(element, repo.Database.GetCollection <Dto>().FindAll().First()); }
public void DeleteTransactionTypeCommandHandler_NotExisting_NoChange() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new DeleteTransactionTypeCommandHandler(repository); var command = new DeleteTransactionTypeCommand(new TransactionType()); //when handler.Execute(command); //then Assert.Empty(repository.Database.Query <TransactionType>()); }
public void DeleteStockCommandHandler_NullEmptyDb_EmptyDb() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new DeleteStockCommandHandler(repository); var command = new DeleteStockCommand(null); //when handler.Execute(command); //then Assert.Empty(repository.Database.Query <Stock>()); }
public void UpsertCategoriesCommandHandler_NullEmptyDb_EmptyDb() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new UpsertCategoriesCommandHandler(repository); var command = new UpsertCategoriesCommand((Category)null); //when handler.Execute(command); //then Assert.Empty(repository.Database.Query <Category>()); }
public void TransactionQueryHandler_TransactionQueryEmptyDatabase_EmptyArray() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new TransactionQueryHandler(repository); var query = new TransactionQuery(); //when var result = handler.Execute(query); //then Assert.NotNull(result); Assert.Empty(result); }
public void Remove_ElementInDb_1() { //given var repo = LiteDbHelper.CreateMemoryDb(); var input = new[] { new Tag(), new Tag() }; repo.Database.UpsertBulk(input); //when int result = repo.Database.Remove(input[0]); //then Assert.Equal(1, result); }
public void Query_NotEmptyDb_Same() { //given var repo = LiteDbHelper.CreateMemoryDb(); var input = new[] { new Tag(), new Tag() }; repo.Database.UpsertBulk(input); //when var result = repo.Database.Query <Tag>(); //then Assert.Equal(input.OrderBy(x => x.Id), result.OrderBy(x => x.Id)); }
public void DeleteTransactionCommandHandler_Existing_Removed() { //given var transaction = new Transaction(); var repository = LiteDbHelper.CreateMemoryDb(); var handler = new DeleteTransactionCommandHandler(repository); var command = new DeleteTransactionCommand(transaction); repository.Database.Upsert(transaction); //when handler.Execute(command); //then Assert.Empty(repository.Database.Query <Transaction>()); }
public void DeleteCategoryCommandHandler_Existing_Removed() { //given var category = new Category(); var repository = LiteDbHelper.CreateMemoryDb(); var handler = new DeleteCategoryCommandHandler(repository); var command = new DeleteCategoryCommand(category); repository.Database.Upsert(category); //when handler.Execute(command); //then Assert.Empty(repository.Database.Query <Category>()); }
public void DeleteStockCommandHandler_Existing_Removed() { //given var stock = new Stock(); var repository = LiteDbHelper.CreateMemoryDb(); var handler = new DeleteStockCommandHandler(repository); var command = new DeleteStockCommand(stock); repository.Database.Upsert(stock); //when handler.Execute(command); //then Assert.Empty(repository.Database.Query <Stock>()); }
public void RemoveAll_QueryElementsInDb_MatchingElementsCount() { //given var repo = LiteDbHelper.CreateMemoryDb(); var input = new[] { new Tag(), new Tag(), new Tag { Name = "Tag" } }; repo.Database.UpsertBulk(input); //when int result = repo.Database.RemoveAll <Tag>(x => string.IsNullOrEmpty(x.Name)); //then Assert.Equal(2, result); }
public void RemoveAll_ElementsInDb_ElementsCount() { //given var repo = LiteDbHelper.CreateMemoryDb(); var input = new[] { new Tag(), new Tag(), new Tag { Name = "Tag" } }; repo.Database.UpsertBulk(input); //when int result = repo.Database.RemoveAll <Tag>(); //then Assert.Equal(input.Length, result); }
public void UpsertBulk_NotNullNotInDbAlQuery_CountAndObjectInDb() { //given var repo = LiteDbHelper.CreateMemoryDb(); Dto[] input = { new Tag { Name = "tag" }, new Dto(), new Dto() }; //when int result = repo.Database.UpsertBulk(input); //then Assert.Equal(3, result); Assert.Equal(input.OrderBy(x => x.Id), repo.Database.GetCollection <Dto>().FindAll().OrderBy(x => x.Id)); }
public void VerySimpleCascadeReferenceUpdateWithDbRefTest() { //given var repo = LiteDbHelper.CreateMemoryDb(); var category1 = new Category { Name = "parent" }; var category2 = new Category { Name = "childA", Parent = category1 }; var category3 = new Category { Name = "childB", Parent = category1 }; var categories = new[] { category1, category2, category3 }; repo.Database.UpsertBulk(categories); //when category3.Parent = category2; repo.Database.Upsert(category3); //then var loadedCategories = repo.Database.Query <Category>(); //is there int elementsCount = repo.Query <Category>().Count(); Assert.Equal(categories.Length, elementsCount); Assert.Contains(category3, loadedCategories); Assert.Contains(category2, loadedCategories); Assert.Contains(category1, loadedCategories); //is same Assert.Equal(category3, loadedCategories.First(x => x.Id == category3.Id)); Assert.Equal(category3.Name, loadedCategories.First(x => x.Id == category3.Id).Name); Assert.Equal(category3.Parent, loadedCategories.First(x => x.Id == category3.Id).Parent); Assert.Equal(category2, loadedCategories.First(x => x.Id == category2.Id)); Assert.Equal(category2.Name, loadedCategories.First(x => x.Id == category2.Id).Name); Assert.Equal(category2.Parent, loadedCategories.First(x => x.Id == category2.Id).Parent); Assert.Equal(category1, loadedCategories.First(x => x.Id == category1.Id)); Assert.Equal(category1.Name, loadedCategories.First(x => x.Id == category1.Id).Name); Assert.Equal(category1.Parent, loadedCategories.First(x => x.Id == category1.Id).Parent); }
public void UpsertSearchStateCommandHandler_UpsertOneObjectWithoutNameTwice_OneInstanceOfSavedObjectInDb() { //given var searchState = new SearchState(); var repository = LiteDbHelper.CreateMemoryDb(); var handler = new UpsertSearchStateCommandHandler(repository); var command = new UpsertSearchStateCommand(new [] { searchState, searchState }); //when handler.Execute(command); //then var result = repository.Database.Query <SearchState>().ToArray(); Assert.Single(result); Assert.Equal(searchState, result[0]); }