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); } }
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); } }