public void AddUser_InvalidLastNameParameter_ArgumentExceptionThrown(string lastName)
        {
            // Arrange
            IUserManager userManager = new UserManagerImpl(configManagerMock.Object, eventAggregatorMock.Object, userController.Object);

            // Act
            userManager.AddUser("testUserId", "firstName", lastName, "emailAddress", "locationName", 1, true);
        }
        public void AddUser_ValidParameters_UsersCollectionPopulated()
        {
            // Arrange
            IUserManager userManager = new UserManagerImpl(configManagerMock.Object, eventAggregatorMock.Object, userController.Object);

            // Act
            userManager.AddUser("testUserId", "firstName", "lastName", "emailAddress", "Tokyo", 1, true);
            // Assert
            Assert.IsNotEmpty(userManager.Users, "because a new user is added to the collection by AddUser");
        }
        public void AddUser_ValidParameters_NewUserEventShouldBePublished()
        {
            // Arrange
            IUserManager userManager = new UserManagerImpl(configManagerMock.Object, eventAggregatorMock.Object, userController.Object);
            var          wasCalled   = false;

            eventAggregatorMock.Setup(ea => ea.GetEvent <NewUserEvent>().Publish(It.IsAny <NewUserEventPayload>())).Callback(() => wasCalled = true);
            // Act
            userManager.AddUser("testUserId", "firstName", "lastName", "emailAddress", "Tokyo", 1, true);
            // Assert
            Assert.IsTrue(wasCalled, "because a new user is published to all listeners by the AddUser method.");
        }