public void Should_validate_command() { var command = new DeleteModuleType(); var moduleType = new ModuleType(); var validatorMock = new Mock <IValidator <DeleteModuleType> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); moduleType.Delete(command, validatorMock.Object); validatorMock.Verify(x => x.Validate(command)); }
public void Should_set_module_type_status_to_deleted() { var command = new DeleteModuleType(); var moduleType = new ModuleType(); var validatorMock = new Mock <IValidator <DeleteModuleType> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); moduleType.Delete(command, validatorMock.Object); Assert.AreEqual(true, moduleType.Status == ModuleTypeStatus.Deleted); }
public void Should_throw_exception_when_already_deleted() { var command = new DeleteModuleType(); var moduleType = new ModuleType(); var validatorMock = new Mock <IValidator <DeleteModuleType> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); moduleType.Delete(command, validatorMock.Object); Assert.Throws <Exception>(() => moduleType.Delete(command, validatorMock.Object)); }
public void Should_set_id_in_module_type_deleted_event() { var command = new DeleteModuleType(); var moduleType = new ModuleType(); var validatorMock = new Mock <IValidator <DeleteModuleType> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); moduleType.Delete(command, validatorMock.Object); var @event = moduleType.Events.OfType <ModuleTypeDeleted>().SingleOrDefault(); Assert.AreEqual(moduleType.Id, @event.AggregateRootId); }
public void Should_add_module_type_deleted_event() { var command = new DeleteModuleType(); var moduleType = new ModuleType(); var validatorMock = new Mock <IValidator <DeleteModuleType> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); moduleType.Delete(command, validatorMock.Object); var @event = moduleType.Events.OfType <ModuleTypeDeleted>().SingleOrDefault(); Assert.IsNotNull(@event); }
public void Delete(DeleteModuleType cmd, IValidator <DeleteModuleType> validator) { if (Status == ModuleTypeStatus.Deleted) { throw new Exception("Module type already deleted."); } validator.ValidateCommand(cmd); AddEvent(new ModuleTypeDeleted { AggregateRootId = Id }); }
public void Should_throw_exception_when_module_type_is_not_found() { var command = new DeleteModuleType { Id = Guid.NewGuid() }; var repositoryMock = new Mock <IModuleTypeRepository>(); repositoryMock.Setup(x => x.GetById(command.Id)).Returns((ModuleType)null); var validatorMock = new Mock <IValidator <DeleteModuleType> >(); var deleteModuleTypeHandler = new DeleteModuleTypeHandler(repositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => deleteModuleTypeHandler.Handle(command)); }
public void Should_update_module_type() { var command = new DeleteModuleType { Id = Guid.NewGuid() }; var moduleTypeMock = new Mock <ModuleType>(); var repositoryMock = new Mock <IModuleTypeRepository>(); repositoryMock.Setup(x => x.GetById(command.Id)).Returns(moduleTypeMock.Object); var validatorMock = new Mock <IValidator <DeleteModuleType> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var deleteModuleTypeHandler = new DeleteModuleTypeHandler(repositoryMock.Object, validatorMock.Object); deleteModuleTypeHandler.Handle(command); repositoryMock.Verify(x => x.Update(It.IsAny <ModuleType>())); }
public void Should_throw_validation_exception_when_validation_fails() { var command = new DeleteModuleType { Id = Guid.NewGuid() }; var moduleTypeMock = new Mock <ModuleType>(); var repositoryMock = new Mock <IModuleTypeRepository>(); repositoryMock.Setup(x => x.GetById(command.Id)).Returns(moduleTypeMock.Object); var validatorMock = new Mock <IValidator <DeleteModuleType> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult(new List <ValidationFailure> { new ValidationFailure("Id", "Id Error") })); var deleteModuleTypeHandler = new DeleteModuleTypeHandler(repositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => deleteModuleTypeHandler.Handle(command)); }