public async void GetByIdTest()
        {
            // Arrange
            var mockLogManager          = new Mock <ILogManager>();
            var mockRuleSetRepository   = new Mock <IRuleSetRepository>();
            var mockRuleSetTranslator   = new Mock <IRuleSetTranslator>();
            var mockRuleAssemblyService = new Mock <IRuleSetAssemblyService>();
            var mockRuleSet             = new Mock <IRuleSet>();

            // Setup mock methods/properties
            mockRuleSet.Setup(c => c.Id).Returns(It.IsAny <int>());
            mockRuleSetRepository.Setup(x => x.GetByIdAsync(It.IsAny <int>()))
            .Returns(Task.FromResult(new GetResponse <IRuleSet> {
                Message = "Successful."
            }));

            // Act
            var sut = new RuleApplicationService(
                mockLogManager.Object, mockRuleSetRepository.Object, mockRuleSetTranslator.Object, mockRuleAssemblyService.Object);
            var response = await sut.GetByIdAsync(It.IsAny <int>());

            // Assert
            response.IsSuccessful.Should().BeTrue();
            response.Errors.Count.Should().Be(0);
            response.Message.Should().NotBeNullOrEmpty();

            // Verify the application service is calling the correct repository method.
            mockRuleSetRepository.Verify(x => x.GetByIdAsync(It.IsAny <int>()));
        }
        public async void GetByIdErrorTest()
        {
            // Arrange
            var mockLogManager          = new Mock <ILogManager>();
            var mockRuleSetRepository   = new Mock <IRuleSetRepository>();
            var mockRuleSetTranslator   = new Mock <IRuleSetTranslator>();
            var mockRuleAssemblyService = new Mock <IRuleSetAssemblyService>();
            var mockRuleSet             = new Mock <IRuleSet>();

            // Setup mock methods/properties
            mockRuleSetRepository.Setup(x => x.GetByIdAsync(It.IsAny <int>()))
            .Throws(new Exception());
            mockRuleSet.Setup(c => c.Id).Returns(It.IsAny <int>());

            // Act
            var sut = new RuleApplicationService(
                mockLogManager.Object, mockRuleSetRepository.Object, mockRuleSetTranslator.Object, mockRuleAssemblyService.Object);
            var response = await sut.GetByIdAsync(It.IsAny <int>());

            // Assert
            response.IsSuccessful.Should().BeFalse();
            response.Errors.Count.Should().BeGreaterThan(0);
            response.Message.Should().NotBeNullOrEmpty();

            // Verify the application service is calling the correct repository method.
            mockRuleSetRepository.Verify(x => x.GetByIdAsync(It.IsAny <int>()));

            // Verify the application service is logging the error.
            mockLogManager.Verify(x => x.LogError(It.IsAny <Exception>(), It.IsAny <string>()));
        }