コード例 #1
0
        public async Task HandleAsync_WithValidDataAndManufacturerIdIsNull_ShouldMakeTemporaryItemPermanent()
        {
            // Arrange
            var local   = new LocalFixture();
            var handler = local.CreateCommandHandler();

            StoreItemMock storeItemMock = local.StoreItemMockFixture.Create(StoreItemDefinition.FromTemporary(true));
            List <IStoreItemAvailability> availabilities = storeItemMock.Object.Availabilities.ToList();

            var command = local.CreateCommandWithoutManufacturerId(availabilities);

            local.ItemRepositoryMock.SetupFindByAsync(command.PermanentItem.Id, storeItemMock.Object);

            // Act
            var result = await handler.HandleAsync(command, default);

            // Assert
            using (new AssertionScope())
            {
                result.Should().BeTrue();
                local.ItemCategoryValidationServiceMock.VerifyValidateAsyncOnce(command.PermanentItem.ItemCategoryId);
                local.ManufacturerValidationServiceMock.VerifyValidateAsyncNever();
                local.AvailabilityValidationServiceMock.VerifyValidateOnce(availabilities);
                storeItemMock.VerifyMakePermanentOnce(command.PermanentItem, availabilities);
                local.ItemRepositoryMock.VerifyStoreAsyncOnce(storeItemMock.Object);
            }
        }
コード例 #2
0
        public async Task HandleAsync_WithValidDataAndManufacturerIdNull_ShouldCreateItem()
        {
            // Arrange
            var local = new LocalFixture();

            IStoreItem storeItem = local.StoreItemFixture.CreateValid();
            List <IStoreItemAvailability> availabilities = storeItem.Availabilities.ToList();

            var handler = local.CreateCommandHandler();
            var command = local.CreateCommandWithoutManufacturerId(availabilities);

            local.StoreItemFactoryMock.SetupCreate(command.ItemCreation, storeItem);

            // Act
            var result = await handler.HandleAsync(command, default);

            // Assert
            using (new AssertionScope())
            {
                result.Should().BeTrue();
                local.ItemRepositoryMock.VerifyStoreAsyncOnce(storeItem);
                local.ItemCategoryValidationServiceMock.VerifyValidateAsyncOnce(command.ItemCreation.ItemCategoryId);
                local.ManufacturerValidationServiceMock.VerifyValidateAsyncNever();
                local.AvailabilityValidationServiceMock.VerifyValidateOnce(availabilities);
            }
        }