Example #1
0
        public void ReturnFoundStatementIfExists()
        {
            // arrange
            var language         = Language.Default;
            var semanticNetwork  = new SemanticNetwork(language);
            var statementToCheck = new TestStatement(1);
            var statementRight   = new TestStatement(1);
            var statementWrong   = new TestStatement(2);

            semanticNetwork.Statements.Add(statementRight);
            semanticNetwork.Statements.Add(statementWrong);

            // act
            var answerToCheck = semanticNetwork.Ask().IsTrueThat(statementToCheck);

            var answerRight = semanticNetwork.Ask().IsTrueThat(statementRight);

            // assert
            Assert.IsFalse(answerToCheck.IsEmpty);
            Assert.IsTrue(((BooleanAnswer)answerToCheck).Result);
            Assert.AreSame(statementRight, answerToCheck.Explanation.Statements.Single());

            Assert.IsFalse(answerRight.IsEmpty);
            Assert.IsTrue(((BooleanAnswer)answerRight).Result);
            Assert.AreSame(statementRight, answerRight.Explanation.Statements.Single());
        }
Example #2
0
        public void ReturnEmptyAnswerIfNoMathingStatementsFound()
        {
            // arrange
            var language         = Language.Default;
            var semanticNetwork  = new SemanticNetwork(language);
            var statementToCheck = new TestStatement(1);
            var statementWrong   = new TestStatement(2);

            // act
            var answerNoStatements = semanticNetwork.Ask().IsTrueThat(statementToCheck);

            semanticNetwork.Statements.Add(statementWrong);
            var answerWrongStatement = semanticNetwork.Ask().IsTrueThat(statementToCheck);

            // assert
            var answer = (BooleanAnswer)answerNoStatements;

            Assert.IsFalse(answer.IsEmpty);
            Assert.IsFalse(answer.Result);
            Assert.AreEqual(0, answer.Explanation.Statements.Count);

            answer = (BooleanAnswer)answerWrongStatement;
            Assert.IsFalse(answer.IsEmpty);
            Assert.IsFalse(answer.Result);
            Assert.AreEqual(0, answer.Explanation.Statements.Count);
        }
Example #3
0
        public void CreateStatementWithoutHint()
        {
            // arrange && act
            var statement = new TestStatement(TestStatementId, new LocalizedStringVariable(), null);

            // assert
            Assert.IsNotNull(statement.Hint);
        }
Example #4
0
        public void CreateStatementWithoutId()
        {
            // arrange && act
            var statement = new TestStatement(null, new LocalizedStringVariable(), new LocalizedStringVariable());

            // assert
            Assert.IsNotNullOrEmpty(statement.ID);
        }
Example #5
0
        public void CreateStatementWithAllPropertiesSet()
        {
            // arrange && act
            var statement = new TestStatement(TestStatementId, new LocalizedStringVariable(), new LocalizedStringVariable());

            // assert
            Assert.AreEqual(TestStatementId, statement.ID);
        }
Example #6
0
            public override IAnswer Process(IQuestionProcessingContext context)
            {
                IStatement testStatement;

                context.SemanticNetwork.Statements.Add(testStatement = new TestStatement());
                testStatement.Context = context;
                context.Scope.Add(testStatement);

                Assert.IsTrue(context.SemanticNetwork.Statements.Enumerate <TestStatement>(context).Any());

                return(null);
            }
Example #7
0
        public void SerializeTest()
        {
            var statement = new TestStatement {
                Location = new LocationInfo(0, 0)
            };

            var result = BinarySerializeUtil.Serialize(statement);

            Assert.NotNull(result.Location);
            Assert.Equal(statement.Location, result.Location);
            Assert.Null(result.Body);
        }
        public async Task ExecutePrivileged()
        {
            var requirements = new RequirementCollection();

            requirements.Require(ObjectName.Parse("sys.tab1"), SqlPrivileges.Insert);

            SqlStatement statement = new TestStatement {
                Requirements = requirements,
                Location     = new LocationInfo(0, 0)
            };

            statement = await statement.PrepareAsync(context);

            await statement.ExecuteAsync(context);
        }
        public async Task ExecuteWithBadprivileges()
        {
            var requirements = new RequirementCollection();

            requirements.Require(ObjectName.Parse("sys.tab1"), SqlPrivileges.Alter);

            SqlStatement statement = new TestStatement {
                Requirements = requirements,
                Location     = new LocationInfo(0, 0)
            };

            statement = await statement.PrepareAsync(context);

            await Assert.ThrowsAnyAsync <UnauthorizedAccessException>(() => statement.ExecuteAsync(context));
        }