public void ThrowArgumentNullException_WhenIsPassed_InvalidValue()
        {
            // Arrange
            var mockedService = new Mock <ICharacterService>();
            var mockedMapper  = new Mock <IMapper>();
            var mockedFactory = new Mock <IDataModelsFactory>();

            var characterAdminController = new CharactersAdministrationController(mockedService.Object, mockedMapper.Object, mockedFactory.Object);

            // Act & Assert
            Assert.That(() => characterAdminController.RemoveCharacterFromDb(null),
                        Throws.ArgumentNullException.With.Message.Contain("character"));
        }
        public void Call_RemoveCharcterMethod_FromTheService()
        {
            // Arrange
            var characterDataModel = new CharacterDataModel();
            var characterViewModel = new CharacterViewModel();

            var mockedService = new Mock <ICharacterService>();
            var mockedMapper  = new Mock <IMapper>();
            var mockedFactory = new Mock <IDataModelsFactory>();

            mockedFactory.Setup(fac => fac.CreateCharacter()).Returns(characterDataModel);
            mockedService.Setup(service => service.RemoveCharacter(characterDataModel));

            var characterAdminController = new CharactersAdministrationController(mockedService.Object, mockedMapper.Object, mockedFactory.Object);

            // Act
            characterAdminController.RemoveCharacterFromDb(characterViewModel);

            // Assert
            mockedService.Verify(service => service.RemoveCharacter(characterDataModel), Times.Once);
        }