public static User CreateBasicUser(UserId gpid, string emailAddress, int metroId) { // do any business logic to protect invariants // note: validation, like email address is well formed, is not something that should be done in here - // that should be taken care of before this method is invoked var user = Factory(); user.ApplyChange(UserEvents.Created(emailAddress, gpid, metroId, false)); return(user); }
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 CreatingNewUser() { var id = new UserId(Guid.NewGuid()); var email = "*****@*****.**"; var metroId = 11; var command = new CreateBasicUser { EmailAddress = email, GlobalPersonId = id.Gpid, MetroId = metroId }; new ConstructorScenarioFor <User>(() => User.CreateBasicUser(id, email, metroId)). Then(UserEvents.Created(email, id, metroId, false)). Assert(); }
public void AddWishListItemToUser() { var id = new UserId(Guid.NewGuid()); var email = "*****@*****.**"; var metroId = 11; var wishlistItemId = new WishListItemId(Guid.NewGuid()); var restoId = new RestaurantId(Guid.NewGuid()); new CommandScenarioFor <User>(User.Factory) .Given(UserEvents.Created(email, id, metroId, false)) .When(user => user.AddWishListItem(id, wishlistItemId, restoId, "some notes")) .Then(UserEvents.WishListItemAdded(id, wishlistItemId, restoId, "some notes")) .Assert(); }
public void AddFriendsToUser() { var id = new UserId(Guid.NewGuid()); var friendId = new UserId(Guid.NewGuid()); var email = "*****@*****.**"; var metroId = 11; var fname = "John"; var lname = "Jack"; var command = new AddFriendToUser(id, friendId, fname, lname, null, null, null); new CommandScenarioFor <User>(User.Factory) .Given(UserEvents.Created(email, id, metroId, false)) .When(user => user.AddFriend(new UserId(command.Gpid), new UserId(command.FriendsGpid), command.FName, command.LName)) .Then(UserEvents.NewFriend(id, friendId, fname, lname)) .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(); }