public async Task Update_valid_app_is_allowed_and_raises_event() { // Arrange var existingApp = new App { Id = "test", DisplayName = "Test", Languages = new[] { "en" }, DefaultLanguage = "en" }; var command = new UpdateAppCommand { Id = "test", DisplayName = "Changed display name", Languages = new[] { "en", "fr" }, DefaultLanguage = "fr" }; var applicationStore = Substitute.For <IApplicationStore>(); applicationStore.GetApp("test").Returns(existingApp); var dispatcher = Substitute.For <IDispatcher>(); var handler = new UpdateAppCommandHandler(applicationStore, new AppValidator(), dispatcher); // Act var result = await handler.Handle(command); // Assert Assert.Equal(ResultStatus.Success, result.Status); await dispatcher.Received(1).PublishEvent(Arg.Is <AppChangedEvent>(ev => ev.AppId == "test" && ev.DefaultLanguage == "fr")); }
public async Task Update_non_existing_app_returns_notfounderror() { var command = new UpdateAppCommand { Id = "nonexisting", DisplayName = "Non-existing app", Languages = new[] { "en" }, DefaultLanguage = "en" }; var applicationStore = Substitute.For <IApplicationStore>(); applicationStore.GetApp("NonExisting").Returns((App)null); var dispatcher = Substitute.For <IDispatcher>(); var handler = new UpdateAppCommandHandler(applicationStore, new AppValidator(), dispatcher); // Act var result = await handler.Handle(command); // Assert Assert.Equal(ResultStatus.NotFound, result.Status); }