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]); }
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]); }