예제 #1
0
        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"));
        }
예제 #2
0
        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);
        }