Ejemplo n.º 1
0
        public void Disable()
        {
            if (_disabled)
            {
                throw new AggregateException(string.Format("User {0} is already disabled", _id));
            }

            ApplyChange(UserEvents.Disabled(_id));
        }
        public void DisableUser()
        {
            var id      = new UserId(Guid.NewGuid());
            var email   = "*****@*****.**";
            var metroId = 11;

            new CommandScenarioFor <User>(User.Factory)
            .Given(UserEvents.Created(email, id, metroId, false))
            .When(user => user.Disable())
            .Then(UserEvents.Disabled(id))
            .Assert();
        }
        public void AlreadyDisabledUserThrows()
        {
            // this test may be mute; disabling an already disabled user may be
            // the result of some eventual consistency, and ignoring a second command
            // to disable would make the operation idempotent
            var id      = new UserId(Guid.NewGuid());
            var email   = "*****@*****.**";
            var metroId = 11;

            new CommandScenarioFor <User>(User.Factory)
            .Given(UserEvents.Created(email, id, metroId, false))
            .Given(UserEvents.Disabled(id))
            .When(user => user.Disable())
            .Throws(new AggregateException(string.Format("User {0} is already disabled", id)))
            .Assert();
        }