예제 #1
0
        public void AppDisabled()
        {
            //  ARRANGE
            var uow             = Container.Resolve <IUnitOfWork>();
            var cmdDispatcher   = Container.Resolve <ICommandHandlerDispatcher>();
            var queryDispatcher = Container.Resolve <IQueryHandlerDispatcher>();

            var cmd = new CreateAppCommand("AppDisabled", "AppDisabled", "AppDisabled", "x", "x", "x", 1);

            cmdDispatcher.Handle(cmd);

            var query = new GetAppByIdQuery("AppDisabled", cmd.AppId);
            var dto   = queryDispatcher.Handle <GetAppByIdQuery, AppDto>(query);

            //  ACT
            Thread.Sleep(2000);

            var cmd2 = new DisableAppCommand("AppDisabled", cmd.AppId);

            cmdDispatcher.Handle(cmd2);

            var query2 = new GetAppByIdQuery("AppDisabled", cmd2.AppId);
            var dto2   = queryDispatcher.Handle <GetAppByIdQuery, AppDto>(query2);

            //  ASSERT
            Assert.IsTrue(dto.IsEnabled);
            Assert.IsFalse(dto2.IsEnabled);

            uow.Commit();
        }
예제 #2
0
        void ICommandHandler <DisableAppCommand> .Handle(DisableAppCommand command)
        {
            var domain = _repoApplication.Get(command.AppId);

            domain.Disable();

            _repoApplication.Save(domain);
        }