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 CategoryController(ICircuitBreaker circuitBreaker, CategoryCommandHandler categoryCommandHandler, CategoryQueryHandler categoryQueryHandler) { _circuitBreaker = circuitBreaker; _categoryCommandHandler = categoryCommandHandler; _categoryQueryHandler = categoryQueryHandler; }
public CategoriesController( CategoryCommandHandler commandHandler, CategoryQueryHandler queryHandler, IMapper mapper) { _commandHandler = commandHandler; _queryHandler = queryHandler; _mapper = mapper; }
public async void GetCategoryByIdFalseTest() { using (var context = new ShopContext(_dbContextOptions)) { var categoryQueryHandler = new CategoryQueryHandler(context); await Assert.ThrowsAnyAsync <DomainException>((async() => await categoryQueryHandler.Handle(new GetCategoryById() { Id = context.Categories.Max(x => x.Id) + 1, }, CancellationToken.None))); } }
public async void GetCategoriesTest() { using (var context = new ShopContext(_dbContextOptions)) { var categoryQueryHandler = new CategoryQueryHandler(context); var result = await categoryQueryHandler.Handle(new GetCategories(), CancellationToken.None); Assert.NotNull(result); Assert.IsType <QueryResult <CategoryResponse> >(result); } }
public async Task Get_ReturnsListAsync() { var queryHandler = new CategoryQueryHandler(BasicNeeds); var query = new GetCategory() { Id = null }; var actual = await queryHandler.Handle(query, CancellationToken.None); Assert.AreEqual(2, actual.Count); }
public void CategoryQueryHandler_CategoryQueryEmptyDatabase_EmptyArray() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new CategoryQueryHandler(repository); var query = new CategoryQuery(); //when var result = handler.Execute(query); //then Assert.NotNull(result); Assert.Empty(result); }
public async void GetCategoryByIdTest() { using (var context = new ShopContext(_dbContextOptions)) { var categoryQueryHandler = new CategoryQueryHandler(context); var result = await categoryQueryHandler.Handle(new GetCategoryById() { Id = context.Categories.First().Id, }, CancellationToken.None); Assert.NotNull(result); Assert.IsType <CategoryWithGoodsResponse>(result); Assert.Equal(result.Id, context.Categories.First().Id); } }
public async Task Read_Category_ReturnsResultFromQuery(long categoryId, bool isNull) { // Arrange var query = new ReadCategoryQuery(categoryId); var databaseContextOptions = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase("kb-pundit") .Options; var databaseContext = new DatabaseContext(databaseContextOptions); var categoryCommandHandler = new CategoryCommandHandler(databaseContext); var categoryQueryHandler = new CategoryQueryHandler(databaseContext); var circuitBreaker = new CircuitBreaker(TaskScheduler.Default, 5, TimeSpan.FromMilliseconds(10), TimeSpan.FromMilliseconds(1000)); var controller = new CategoryController(circuitBreaker, categoryCommandHandler, categoryQueryHandler); // Act var categoryResult = await controller.ReadCategoryAsync(query); // Assert Assert.AreEqual(isNull, categoryResult == null); }
public async Task Get_Category_ReturnsNextCategoryId(long expectedId) { // Arrange var query = new GetNextCategoryIdQuery(); var databaseContextOptions = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase("kb-pundit") .Options; var databaseContext = new DatabaseContext(databaseContextOptions); var categoryCommandHandler = new CategoryCommandHandler(databaseContext); var categoryQueryHandler = new CategoryQueryHandler(databaseContext); var circuitBreaker = new CircuitBreaker(TaskScheduler.Default, 5, TimeSpan.FromMilliseconds(10), TimeSpan.FromMilliseconds(1000)); var controller = new CategoryController(circuitBreaker, categoryCommandHandler, categoryQueryHandler); // Act var result = await controller.GetNextCategoryIdAsync(query); // Assert Assert.AreEqual(expectedId, result.Id); }
public async Task ReadAll_Category_ReturnsResultFromQuery() { // Arrange var query = new ReadAllCategoriesQuery(); var databaseContextOptions = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase("kb-pundit") .Options; var databaseContext = new DatabaseContext(databaseContextOptions); var categoryCommandHandler = new CategoryCommandHandler(databaseContext); var categoryQueryHandler = new CategoryQueryHandler(databaseContext); var circuitBreaker = new CircuitBreaker(TaskScheduler.Default, 5, TimeSpan.FromMilliseconds(10), TimeSpan.FromMilliseconds(1000)); var controller = new CategoryController(circuitBreaker, categoryCommandHandler, categoryQueryHandler); // Act var categoryResult = await controller.ReadAllCategoriesAsync(query); // Assert Assert.IsNotNull(categoryResult, "Result is null."); Assert.AreEqual(1, categoryResult.Size); }
public async Task Create_Category_CreatesCategoryFromRequestAndReturnsResult(long id) { // Arrange long?parentId = null; var request = new CreateCategoryRequest(id, "Test Category", "fa-exclamation", parentId); var databaseContextOptions = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase("kb-pundit") .Options; var databaseContext = new DatabaseContext(databaseContextOptions); var categoryCommandHandler = new CategoryCommandHandler(databaseContext); var categoryQueryHandler = new CategoryQueryHandler(databaseContext); var circuitBreaker = new CircuitBreaker(TaskScheduler.Default, 5, TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(1000)); var controller = new CategoryController(circuitBreaker, categoryCommandHandler, categoryQueryHandler); // Act var categoryResult = await controller.CreateCategoryFromRequestAsync(request); // Assert Assert.AreEqual(1, categoryResult.Id); }
public async Task Update_Category_UpdatesCategoryFromRequestAndReturnsResult (long id, string name, string icon) { // Arrange var request = new UpdateCategoryRequest(id, name, icon); var databaseContextOptions = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase("kb-pundit") .Options; var databaseContext = new DatabaseContext(databaseContextOptions); var categoryCommandHandler = new CategoryCommandHandler(databaseContext); var categoryQueryHandler = new CategoryQueryHandler(databaseContext); var circuitBreaker = new CircuitBreaker(TaskScheduler.Default, 5, TimeSpan.FromMilliseconds(10), TimeSpan.FromMilliseconds(1000)); var controller = new CategoryController(circuitBreaker, categoryCommandHandler, categoryQueryHandler); // Act var categoryResult = await controller.UpdateCategoryFromRequestAsync(request); // Assert Assert.AreEqual(1, categoryResult.Id); Assert.AreEqual(name, categoryResult.Name); Assert.AreEqual(icon, categoryResult.Icon); }