Пример #1
0
        public void TranslateTest()
        {
            var ruleSet                = CreateTestRuleSet();
            var expectedCode           = CreateExpectedCode();
            var mockBusinessRuleParser = new Mock <IBusinessRuleParser>();

            mockBusinessRuleParser.Setup(x => x.Translate(It.IsAny <Rule>()))
            .Returns(new TranslateResult
            {
                Code = @"
                            if(token.Audit.AuditStatus == AuditStatuses.Submitted && token.Audit.Policy.EffectiveEnd >= DateTime.Now.AddDays(-token.Client.Settings.WelcomeLetterDays))
                            {
                                token.Params.Add(""ReportType"", ""Welcome"");
                                token.Exception = _actions[""GenerateLetter""](token);
                            }"
            });

            // Act
            var sut  = new RuleSetTranslator(mockBusinessRuleParser.Object);
            var code = sut.Translate(ruleSet, false);

            // Assert
            code.Length.Should().BeGreaterThan(0);
            code.RemoveWhitespace().Should().Be(expectedCode.RemoveWhitespace());

            mockBusinessRuleParser.Verify(x => x.Translate(It.IsAny <Rule>()));
        }
Пример #2
0
        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);
        }