1 package org.jacorb.test.notification; 2 3 23 24 import junit.framework.Test; 25 26 import org.jacorb.notification.filter.AbstractFilter; 27 import org.jacorb.notification.filter.MappingFilterImpl; 28 import org.jacorb.notification.filter.etcl.ETCLFilter; 29 import org.jacorb.notification.impl.DefaultEvaluationContextFactory; 30 import org.jacorb.notification.impl.DefaultMessageFactory; 31 import org.omg.CORBA.Any ; 32 import org.omg.CORBA.AnyHolder ; 33 import org.omg.CosNotification.EventType; 34 import org.omg.CosNotifyFilter.ConstraintExp; 35 import org.omg.CosNotifyFilter.MappingConstraintInfo; 36 import org.omg.CosNotifyFilter.MappingConstraintPair; 37 import org.omg.CosNotifyFilter.MappingFilterOperations; 38 39 42 43 public class MappingFilterTest extends NotificationTestCase 44 { 45 Any testPerson_; 46 47 AbstractFilter filter_; 48 49 51 public MappingFilterTest(String name, NotificationTestCaseSetup setup) 52 { 53 super(name, setup); 54 } 55 56 58 public void setUpTest() throws Exception 59 { 60 filter_ = new ETCLFilter(getConfiguration(), new DefaultEvaluationContextFactory( 61 getEvaluator()), new DefaultMessageFactory(getConfiguration()), getORB(), getPOA()); 62 63 testPerson_ = getTestUtils().getTestPersonAny(); 64 } 65 66 public void testMatch() throws Exception 67 { 68 Any defaultValue = getORB().create_any(); 69 70 MappingFilterOperations _mappingFilter = new MappingFilterImpl(getORB(), 71 getConfiguration(), filter_, defaultValue); 72 73 AnyHolder anyHolder = new AnyHolder (); 74 75 assertTrue(!_mappingFilter.match(testPerson_, anyHolder)); 77 78 Any resultToSet = getORB().create_any(); 80 81 resultToSet.insert_string("this indicates success"); 82 83 EventType[] _eventType = new EventType[1]; 84 _eventType[0] = new EventType("*", "*"); 85 ConstraintExp constraintExp = new ConstraintExp(_eventType, "$.first_name == 'firstname'"); 86 87 MappingConstraintPair[] mappingConstraintPair = new MappingConstraintPair[1]; 88 mappingConstraintPair[0] = new MappingConstraintPair(constraintExp, resultToSet); 89 90 MappingConstraintInfo[] _info = _mappingFilter 91 .add_mapping_constraints(mappingConstraintPair); 92 93 assertTrue(_info.length == 1); 94 95 assertEquals("$.first_name == 'firstname'", _info[0].constraint_expression.constraint_expr); 96 assertEquals(resultToSet, _info[0].value); 97 98 assertTrue(_mappingFilter.match(testPerson_, anyHolder)); 100 assertEquals(resultToSet, anyHolder.value); 101 } 102 103 public void testMatch2() throws Exception 104 { 105 Any defaultValue = getORB().create_any(); 106 107 MappingFilterOperations _mappingFilter = new MappingFilterImpl(getORB(), 108 getConfiguration(), filter_, defaultValue); 109 110 AnyHolder anyHolder = new AnyHolder (); 111 112 assertTrue(!_mappingFilter.match(testPerson_, anyHolder)); 114 115 Any resultToSet = getORB().create_any(); 117 118 resultToSet.insert_string("this is 10"); 119 120 EventType[] _eventType = new EventType[1]; 121 _eventType[0] = new EventType("*", "*"); 122 ConstraintExp constraintExp = new ConstraintExp(_eventType, "$ == 10"); 123 124 MappingConstraintPair[] mappingConstraintPair = new MappingConstraintPair[2]; 125 mappingConstraintPair[0] = new MappingConstraintPair(constraintExp, resultToSet); 126 127 constraintExp = new ConstraintExp(_eventType, "$ == 20"); 128 resultToSet = getORB().create_any(); 129 resultToSet.insert_string("this is 20"); 130 mappingConstraintPair[1] = new MappingConstraintPair(constraintExp, resultToSet); 131 132 MappingConstraintInfo[] _info = _mappingFilter 133 .add_mapping_constraints(mappingConstraintPair); 134 135 assertTrue(_info.length == 2); 136 137 Any testMessage = getORB().create_any(); 138 testMessage.insert_long(10); 139 140 assertTrue(_mappingFilter.match(testMessage, anyHolder)); 142 assertEquals("this is 10", anyHolder.value.extract_string()); 143 144 testMessage = getORB().create_any(); 145 testMessage.insert_long(20); 146 147 assertTrue(_mappingFilter.match(testMessage, anyHolder)); 148 assertEquals("this is 20", anyHolder.value.extract_string()); 149 } 150 151 public static Test suite() throws Exception 152 { 153 return NotificationTestCase.suite(MappingFilterTest.class); 154 } 155 } 156 | Popular Tags |