public void AddGroup_InvalidEmailAddressParameter_ArgumentExceptionThrown(string groupName)
        {
            // Arrange
            IGroupManager groupManager = new GroupManagerImpl(configManagerMock.Object, eventAggregatorMock.Object, groupController.Object);

            // Act
            groupManager.AddGroup(1, groupName, true);
        }
        public void AddGroup_ValidParameters_GroupsCollectionPopulated()
        {
            // Arrange
            IGroupManager groupManager = new GroupManagerImpl(configManagerMock.Object, eventAggregatorMock.Object, groupController.Object);

            // Act
            groupManager.AddGroup(1, "groupName", true);
            // Assert
            Assert.IsNotEmpty(groupManager.Groups, "because a new group is added to the collection by AddGroup");
        }
        public void AddGroup_ValidParameters_NewGroupEventShouldBePublished()
        {
            // Arrange
            IGroupManager groupManager = new GroupManagerImpl(configManagerMock.Object, eventAggregatorMock.Object, groupController.Object);
            var           wasCalled    = false;

            eventAggregatorMock.Setup(ea => ea.GetEvent <NewGroupEvent>().Publish(It.IsAny <NewGroupEventPayload>())).Callback(() => wasCalled = true);
            // Act
            groupManager.AddGroup(1, "groupName", true);
            // Assert
            Assert.IsTrue(wasCalled, "because a new group is published to all listeners by the AddGroup method.");
        }