public void CreatePublishedAssemblyTest() { // Arrange var mockLogManager = new Mock <ILogManager>(); var mockRuleSetRepository = new Mock <IRuleSetRepository>(); var mockRuleTerminalApplicationService = new Mock <IRuleGrammarTerminalApplicationService>(); mockRuleTerminalApplicationService.Setup(x => x.GetAllAsync()) .Returns(Task.FromResult(GetMockRuleTerminals())); var businessRuleParser = new BusinessRuleParser(mockLogManager.Object, mockRuleTerminalApplicationService.Object); var rulesetTranslator = new RuleSetTranslator(businessRuleParser); var ruleAssemblyService = new RuleSetAssemblyService(mockLogManager.Object); var testRuleSet = CreateTestRuleSet(); // Act var sut = new RuleApplicationService( mockLogManager.Object, mockRuleSetRepository.Object, rulesetTranslator, ruleAssemblyService); var response = sut.CreateAssembly(testRuleSet, true); // Assert response.IsSuccessful.Should().BeTrue(); response.Errors.Count.Should().Be(0); response.Content.GeneratedAssembly.Length.Should().BeGreaterThan(0); }
public void ExecuteRuleTest() { // Arrange var mockLogManager = new Mock <ILogManager>(); var mockRuleSetRepository = new Mock <IRuleSetRepository>(); var mockRuleSetTranslator = new Mock <IRuleSetTranslator>(); var ruleSetAssemblyService = new RuleSetAssemblyService(mockLogManager.Object); var sut = new RuleApplicationService( mockLogManager.Object, mockRuleSetRepository.Object, mockRuleSetTranslator.Object, ruleSetAssemblyService); // Act var ruleSet = new RuleSet { Name = "TestRule", Code = $@" using System; namespace {Constants.RuleNamespace} {{ public class TestRule {{ public int TestExecute() {{ return 1; }} }} }}", Rules = new List <IRule> { new Rule { Name = "TestExecute" } } }; var result = (int)sut.ExecuteRule(ruleSet, "TestExecute"); // Assert result.Should().Be(1); }