예제 #1
0
        public void Setup()
        {
            _moduleId = Guid.NewGuid();
            var addPageModuleCommand = new AddPageModule
            {
                SiteId   = Guid.NewGuid(),
                PageId   = Guid.NewGuid(),
                ModuleId = _moduleId,
                Id       = Guid.NewGuid(),
                Title    = "Title",
                Zone     = "Zone"
            };
            var addPageModuleValidatorMock = new Mock <IValidator <AddPageModule> >();

            addPageModuleValidatorMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult());
            _page = new Page();
            _page.AddModule(addPageModuleCommand, addPageModuleValidatorMock.Object);
            _pageModule = _page.PageModules.FirstOrDefault(x => x.ModuleId == _moduleId);
            _command    = new RemovePageModule
            {
                SiteId   = addPageModuleCommand.SiteId,
                PageId   = addPageModuleCommand.PageId,
                ModuleId = _moduleId,
            };
            _validatorMock = new Mock <IValidator <RemovePageModule> >();
            _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult());
            _page.RemoveModule(_command, _validatorMock.Object);
            _event = _page.Events.OfType <PageModuleRemoved>().SingleOrDefault();
        }
예제 #2
0
        public void Should_have_validation_error_when_site_id_is_empty()
        {
            var command = new RemovePageModule
            {
                SiteId = Guid.Empty
            };

            var siteRulesMock = new Mock <ISiteRules>();
            var validator     = new RemovePageModuleValidator(siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
예제 #3
0
        public void Should_have_validation_error_when_site_does_not_exist()
        {
            var command = new RemovePageModule
            {
                SiteId = Guid.NewGuid()
            };

            var siteRulesMock = new Mock <ISiteRules>();

            siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false);

            var validator = new RemovePageModuleValidator(siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
예제 #4
0
파일: Page.cs 프로젝트: zzekikaya/Weapsy
        public void RemoveModule(RemovePageModule cmd, IValidator <RemovePageModule> validator)
        {
            validator.ValidateCommand(cmd);

            var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == cmd.ModuleId);

            if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted)
            {
                throw new Exception("Page module not found.");
            }

            AddEvent(new PageModuleRemoved
            {
                SiteId          = SiteId,
                AggregateRootId = Id,
                ModuleId        = cmd.ModuleId,
                PageModuleId    = pageModule.Id
            });
        }
예제 #5
0
        public void Should_update_page()
        {
            var command = new RemoveModule
            {
                SiteId   = Guid.NewGuid(),
                PageId   = Guid.NewGuid(),
                ModuleId = Guid.NewGuid()
            };

            var removePageModuleCommand = new RemovePageModule
            {
                SiteId   = command.SiteId,
                PageId   = command.PageId,
                ModuleId = command.ModuleId,
            };

            var removePageModuleValidatorMock = new Mock <IValidator <RemovePageModule> >();

            removePageModuleValidatorMock.Setup(x => x.Validate(removePageModuleValidatorMock)).Returns(new ValidationResult());

            var pageMock = new Mock <Page>();

            pageMock.Setup(x => x.RemoveModule(removePageModuleCommand, removePageModuleValidatorMock.Object));

            var moduleRepositoryMock = new Mock <IModuleRepository>();

            var pageRepositoryMock = new Mock <IPageRepository>();

            pageRepositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(pageMock.Object);
            pageRepositoryMock.Setup(x => x.Update(It.IsAny <Page>()));

            var deleteModuleValidatorMock = new Mock <IValidator <DeleteModule> >();

            deleteModuleValidatorMock.Setup(x => x.Validate(It.IsAny <DeleteModule>())).Returns(new ValidationResult());

            var removeModuleHandler = new RemoveModuleHandler(moduleRepositoryMock.Object, pageRepositoryMock.Object, deleteModuleValidatorMock.Object, removePageModuleValidatorMock.Object);

            removeModuleHandler.Handle(command);

            pageRepositoryMock.Verify(x => x.Update(It.IsAny <Page>()));
        }