예제 #1
0
        public void TestGetExpressionParameters()
        {
            // Create a content filtered topic without expression parameters
            string query     = "Id <= 1";
            string topicName = "FilteredTopic";
            ContentFilteredTopic filteredTopic = _participant.CreateContentFilteredTopic(topicName, _topic, query);

            Assert.IsNotNull(filteredTopic);

            // Test with null parameter
            ReturnCode result = filteredTopic.GetExpressionParameters(null);

            Assert.AreEqual(ReturnCode.BadParameter, result);

            // Check empty expression parameters
            List <string> parameters = new List <string> {
                "1"
            };

            result = filteredTopic.GetExpressionParameters(parameters);
            Assert.AreEqual(ReturnCode.Ok, result);
            Assert.IsNotNull(parameters);
            Assert.AreEqual(0, parameters.Count);

            // Create a content filtered topic with one expression parameter
            query     = "Id <= %0";
            topicName = "FilteredTopic1";
            string parameter1 = "10";
            ContentFilteredTopic filteredTopic1 = _participant.CreateContentFilteredTopic(topicName, _topic, query, parameter1);

            Assert.IsNotNull(filteredTopic1);

            parameters = new List <string> {
                "1"
            };
            result = filteredTopic1.GetExpressionParameters(parameters);
            Assert.AreEqual(ReturnCode.Ok, result);
            Assert.IsNotNull(parameters);
            Assert.AreEqual(1, parameters.Count);
            Assert.AreEqual(parameter1, parameters[0]);

            // Create a content filtered topic with two expression parameter
            query      = "Id <= %0 AND Id <= %1";
            topicName  = "FilteredTopic2";
            parameter1 = "0";
            string parameter2 = "10";
            ContentFilteredTopic filteredTopic2 = _participant.CreateContentFilteredTopic(topicName, _topic, query, parameter1, parameter2);

            Assert.IsNotNull(filteredTopic2);

            parameters = new List <string> {
                "1"
            };
            result = filteredTopic2.GetExpressionParameters(parameters);
            Assert.AreEqual(ReturnCode.Ok, result);
            Assert.IsNotNull(parameters);
            Assert.AreEqual(2, parameters.Count);
            Assert.AreEqual(parameter1, parameters[0]);
            Assert.AreEqual(parameter2, parameters[1]);
        }
예제 #2
0
        public void TestSetExpressionParameters()
        {
            // Create a content filtered topic with two expression parameter
            string query      = "Id <= %0 AND Id <= %1";
            string topicName  = "FilteredTopic";
            string parameter1 = "0";
            string parameter2 = "10";

            // Test with incorrect number of parameters
            ContentFilteredTopic filteredTopic = _participant.CreateContentFilteredTopic(topicName, _topic, query, parameter1);

            Assert.IsNull(filteredTopic);

            // Test with correct number of parameters
            filteredTopic = _participant.CreateContentFilteredTopic(topicName, _topic, query, parameter1, parameter2);
            Assert.IsNotNull(filteredTopic);

            // Test with null parameter
            ReturnCode result = filteredTopic.SetExpressionParameters(null);

            Assert.AreEqual(ReturnCode.BadParameter, result);

            // Test with incorrect number of expression parameters
            result = filteredTopic.SetExpressionParameters(parameter1);
            Assert.AreEqual(ReturnCode.Error, result);

            result = filteredTopic.SetExpressionParameters();
            Assert.AreEqual(ReturnCode.Error, result);

            // Test with correct number of expression parameters
            result = filteredTopic.SetExpressionParameters(parameter2, parameter1);
            Assert.AreEqual(ReturnCode.Ok, result);

            List <string> parameters = new List <string> {
                "1"
            };

            result = filteredTopic.GetExpressionParameters(parameters);
            Assert.AreEqual(ReturnCode.Ok, result);
            Assert.IsNotNull(parameters);
            Assert.AreEqual(2, parameters.Count);
            Assert.AreEqual(parameter2, parameters[0]);
            Assert.AreEqual(parameter1, parameters[1]);
        }