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;
 }
Exemple #3
0
 public CategoriesController(
     CategoryCommandHandler commandHandler,
     CategoryQueryHandler queryHandler,
     IMapper mapper)
 {
     _commandHandler = commandHandler;
     _queryHandler   = queryHandler;
     _mapper         = mapper;
 }
Exemple #4
0
        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)));
            }
        }
Exemple #5
0
        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);
        }
Exemple #8
0
        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);
        }