public void ReturnValidationErrors()
        {
            var validator = new Mock <ICommandValidator>(MockBehavior.Strict);

            validator.Setup(v => v.ValidateDomainEvent(It.IsAny <EnvironmentCreated>()))
            .Returns(() => Result.Error("Something went wrong", ErrorCode.Undefined));

            var domainObject = new DefaultDomainObject();
            var domainEvent  = new EnvironmentCreated(new EnvironmentIdentifier("Foo", "Bar"));

            domainObject.AddEvent(domainEvent);

            var result = domainObject.Validate(new List <ICommandValidator> {
                validator.Object
            });

            Assert.NotEmpty(result[domainEvent]);
        }
        public void ValidatesCapturedEvents()
        {
            var validator = new Mock <ICommandValidator>(MockBehavior.Strict);

            validator.Setup(v => v.ValidateDomainEvent(It.IsAny <EnvironmentCreated>()))
            .Returns(Result.Success)
            .Verifiable();

            var domainObject = new DefaultDomainObject();

            domainObject.AddEvent(new EnvironmentCreated(new EnvironmentIdentifier("Foo", "Bar")));

            domainObject.Validate(new List <ICommandValidator> {
                validator.Object
            });

            validator.Verify();
        }