View Javadoc
1   package edu.internet2.middleware.grouper.app.provisioning;
2   
3   import java.util.Collection;
4   import java.util.Set;
5   
6   import edu.internet2.middleware.grouper.helper.GrouperTest;
7   import edu.internet2.middleware.grouper.util.GrouperUtil;
8   import junit.textui.TestRunner;
9   
10  public class ProvisioningGroupTest extends GrouperTest {
11  
12    public ProvisioningGroupTest() {
13    }
14  
15    public ProvisioningGroupTest(String name) {
16      super(name);
17    }
18  
19    public static void main(String[] args) {
20      
21      TestRunner.run(new ProvisioningGroupTest("testConvertToJsonForCache"));
22      
23      
24    }
25  
26    public void testConvertToJsonForCache() {
27      
28      ProvisioningGroup provisioningGroup = new ProvisioningGroup(false);
29      provisioningGroup.assignAttributeValue("name", "someName");
30      provisioningGroup.assignAttributeValue("id", "abc123");
31      provisioningGroup.addAttributeValue("member", "jsmith");
32      provisioningGroup.addAttributeValue("member", "ajackson");
33      provisioningGroup.addAttributeValue("member", "tjohnson");
34      provisioningGroup.addAttributeValue("objectClass", "groupOfNames");
35      provisioningGroup.addAttributeValue("objectClass", "top");
36      provisioningGroup.addAttributeValue("objectClass", "memberGroup");
37      provisioningGroup.assignAttributeValue("description", "This is the description of the group");
38      provisioningGroup.assignAttributeValue("displayName", "Some name");
39      provisioningGroup.assignAttributeValue("uuid", "abc123xyz456");
40      String json = provisioningGroup._internal_toJsonForCache("member");
41  
42      String expectedString = "{\"description\":\"This is the description of the group\",\"displayName\":\"Some name\",\"id\":\"abc123\","
43          + "\"name\":\"someName\",\"objectClass\":[\"groupOfNames\",\"memberGroup\",\"top\"],\"uuid\":\"abc123xyz456\"}";
44      
45      //assertEquals(expectedString, json);
46      //{"description":"This is the description of the group","displayName":"Some name","id":"abc123","name":"someName","objectClass":["groupOfNames","memberGroup","top"],"uuid":"abc123xyz456"}
47      
48      ProvisioningGroup provisioningGroup2 = new ProvisioningGroup(false);
49      
50      provisioningGroup2.fromJsonForCache(json);
51      assertEquals("someName" , provisioningGroup2.retrieveAttributeValueString("name"));
52      assertEquals("abc123" , provisioningGroup2.retrieveAttributeValueString("id"));
53      Collection<?> objectClass = (Collection<?>)provisioningGroup2.retrieveAttributeValue("objectClass");
54      assertEquals(3, GrouperUtil.length(objectClass));
55      assertTrue(objectClass.contains("groupOfNames"));
56      assertTrue(objectClass.contains("top"));
57      assertTrue(objectClass.contains("memberGroup"));
58      assertEquals(0, GrouperUtil.length(provisioningGroup2.getTruncatedAttributes()));
59    }
60  
61    public void testConvertToJsonForCacheLong() {
62      
63      ProvisioningGroup provisioningGroup = new ProvisioningGroup(false);
64      provisioningGroup.assignAttributeValue("name", "someName");
65      provisioningGroup.assignAttributeValue("id", "abc123");
66      provisioningGroup.addAttributeValue("member", "jsmith");
67      provisioningGroup.addAttributeValue("member", "ajackson");
68      provisioningGroup.addAttributeValue("member", "tjohnson");
69      provisioningGroup.addAttributeValue("objectClass", "groupOfNames");
70      provisioningGroup.addAttributeValue("objectClass", "top");
71      provisioningGroup.addAttributeValue("objectClass", "memberGroup");
72      provisioningGroup.assignAttributeValue("description", "This is the description of the group");
73      provisioningGroup.assignAttributeValue("displayName", "Some name");
74      provisioningGroup.assignAttributeValue("uuid", "abc123xyz456");
75  
76      // 1426
77      provisioningGroup.assignAttributeValue("someLong1", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae auctor eu augue ut lectus arcu bibendum. Egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam. In metus vulputate eu scelerisque felis imperdiet proin fermentum leo. Scelerisque fermentum dui faucibus in ornare quam. Massa eget egestas purus viverra accumsan in nisl. Dapibus ultrices in iaculis nunc sed augue lacus viverra vitae. Aliquam malesuada bibendum arcu vitae. Quam adipiscing vitae proin sagittis nisl rhoncus mattis. Vivamus at augue eget arcu dictum. Blandit aliquam etiam erat velit scelerisque in dictum. Egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam. Egestas fringilla phasellus faucibus scelerisque eleifend. Erat velit scelerisque in dictum non consectetur a.  Fusce ut placerat orci nulla pellentesque dignissim enim sit. Vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt. Aliquet nibh praesent tristique magna sit amet purus. Sit amet commodo nulla facilisi. Fermentum dui faucibus in ornare quam viverra. Bibendum at varius vel pharetra vel turpis. Volutpat est velit egestas dui id. Elementum eu facilisis sed odio morbi quis commodo odio aenean. Integer malesuada nunc vel risus commodo viverra maecenas. Tempus quam pellentesque nec nam aliquam sem.");
78      
79      // 982
80      provisioningGroup.assignAttributeValue("someLong2", "Vestibulum lorem sed risus ultricies tristique nulla. Purus viverra accumsan in nisl nisi scelerisque eu. Mattis pellentesque id nibh tortor. Amet dictum sit amet justo donec enim. Justo nec ultrices dui sapien eget mi proin. Faucibus scelerisque eleifend donec pretium. Dignissim sodales ut eu sem integer vitae justo eget magna. Consequat ac felis donec et odio pellentesque diam volutpat commodo. Porttitor eget dolor morbi non arcu risus. Pharetra et ultrices neque ornare aenean euismod elementum nisi quis. Erat nam at lectus urna duis convallis convallis tellus. Nec nam aliquam sem et tortor consequat id porta. Sit amet tellus cras adipiscing enim. Tortor aliquam nulla facilisi cras fermentum odio eu. Proin fermentum leo vel orci. Et netus et malesuada fames ac turpis egestas sed. Proin libero nunc consequat interdum. Ridiculus mus mauris vitae ultricies leo integer malesuada. Sapien eget mi proin sed libero enim sed. Diam maecenas ultricies mi eget mauris pharetra et.");
81      
82      // 765
83      provisioningGroup.assignAttributeValue("someLong3", "Viverra maecenas accumsan lacus vel facilisis volutpat est velit. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Et malesuada fames ac turpis egestas. Sit amet dictum sit amet justo. Sit amet consectetur adipiscing elit pellentesque habitant morbi tristique. Ullamcorper velit sed ullamcorper morbi tincidunt. Justo eget magna fermentum iaculis eu non diam. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Mattis aliquam faucibus purus in massa. Felis eget velit aliquet sagittis id consectetur purus ut. Hendrerit dolor magna eget est lorem. Tortor id aliquet lectus proin. Velit euismod in pellentesque massa placerat duis. Eu scelerisque felis imperdiet proin fermentum. Porttitor leo a diam sollicitudin tempor id eu nisl.");
84      
85      // 537
86      provisioningGroup.assignAttributeValue("someLong4", "Facilisi morbi tempus iaculis urna id. Sollicitudin tempor id eu nisl nunc. Ultrices eros in cursus turpis massa tincidunt dui. Ultrices vitae auctor eu augue ut lectus arcu bibendum at. Nunc consequat interdum varius sit amet. Consectetur libero id faucibus nisl. Imperdiet sed euismod nisi porta lorem mollis. Cras pulvinar mattis nunc sed blandit libero volutpat sed cras. A diam sollicitudin tempor id eu nisl nunc mi. Non blandit massa enim nec dui nunc. Sapien eget mi proin sed libero. Pulvinar neque laoreet suspendisse interdum");
87      
88      // 1617
89      provisioningGroup.assignAttributeValue("someLong5", "Odio tempor orci dapibus ultrices in iaculis nunc. Nibh venenatis cras sed felis eget velit aliquet sagittis id. Sed risus ultricies tristique nulla aliquet enim tortor at. Vitae aliquet nec ullamcorper sit. Arcu non odio euismod lacinia at quis. Faucibus vitae aliquet nec ullamcorper sit amet. Praesent tristique magna sit amet purus gravida quis blandit. Velit euismod in pellentesque massa placerat duis. A diam sollicitudin tempor id eu. Adipiscing at in tellus integer. Placerat duis ultricies lacus sed turpis tincidunt id. Faucibus a pellentesque sit amet porttitor eget dolor morbi non. Cras sed felis eget velit aliquet sagittis id. Risus nec feugiat in fermentum posuere. Elit duis tristique sollicitudin nibh. Mattis rhoncus urna neque viverra justo nec ultrices dui sapien. Nisl pretium fusce id velit ut tortor. Tincidunt augue interdum velit euismod in pellentesque.  Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Enim diam vulputate ut pharetra. Justo eget magna fermentum iaculis eu non. Molestie nunc non blandit massa enim nec dui nunc mattis. Ut tortor pretium viverra suspendisse potenti nullam ac. Ultricies mi quis hendrerit dolor magna eget est lorem ipsum. Nibh cras pulvinar mattis nunc sed blandit. Adipiscing bibendum est ultricies integer quis auctor elit. Sed cras ornare arcu dui vivamus arcu. Odio ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Lorem donec massa sapien faucibus. Scelerisque eleifend donec pretium vulputate. Lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Ut faucibus pulvinar elementum integer enim neque.");
90      
91      String json = provisioningGroup._internal_toJsonForCache("member");
92  
93      //System.out.println(json);
94      String expectedString = "{\"description\":\"This is the description of the group\",\"displayName\":\"Some name\",\"id\":\"abc123\",\"name\":\"someName\",\"objectClass\":[\"groupOfNames\",\"memberGroup\",\"top\"],\"someLong1\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae auctor eu augue ut lectus arcu bibendum. Egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam. In metus vulputate eu scelerisque felis imperdiet proin fermentum leo. Scelerisque fermentum dui faucibus in ornare quam. Massa eget egestas purus viverra accumsan in nisl. Dapibus ultrices in iaculis nunc sed augue lacus viverra vitae. Aliquam malesuada bib...\",\"someLong2\":\"Vestibulum lorem sed risus ultricies tristique nulla. Purus viverra accumsan in nisl nisi scelerisque eu. Mattis pellentesque id nibh tortor. Amet dictum sit amet justo donec enim. Justo nec ultrices dui sapien eget mi proin. Faucibus scelerisque eleifend donec pretium. Dignissim sodales ut eu sem integer vitae justo eget magna. Consequat ac felis donec et odio pellentesque diam volutpat commodo. Porttitor eget dolor morbi non arcu risus. Pharetra et ultrices neque ornare aenean euismod eleme...\",\"someLong3\":\"Viverra maecenas accumsan lacus vel facilisis volutpat est velit. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Et malesuada fames ac turpis egestas. Sit amet dictum sit amet justo. Sit amet consectetur adipiscing elit pellentesque habitant morbi tristique. Ullamcorper velit sed ullamcorper morbi tincidunt. Justo eget magna fermentum iaculis eu non diam. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Mattis aliquam faucibus purus in massa. Felis eget velit aliquet sagittis id consectetur purus ut. Hendrerit dolor magna eget est lorem. Tortor id aliquet lectus proin. Velit euismod in pellentesque massa placerat duis. Eu scelerisque felis imperdiet proin fermentum. Porttitor leo a diam sollicitudin tempor id eu nisl.\",\"someLong4\":\"Facilisi morbi tempus iaculis urna id. Sollicitudin tempor id eu nisl nunc. Ultrices eros in cursus turpis massa tincidunt dui. Ultrices vitae auctor eu augue ut lectus arcu bibendum at. Nunc consequat interdum varius sit amet. Consectetur libero id faucibus nisl. Imperdiet sed euismod nisi porta lorem mollis. Cras pulvinar mattis nunc sed blandit libero volutpat sed cras. A diam sollicitudin tempor id eu nisl nunc mi. Non blandit massa enim nec dui nunc. Sapien eget mi proin sed libero. Pulvinar neque laoreet suspendisse interdum\",\"someLong5\":\"Odio tempor orci dapibus ultrices in iaculis nunc. Nibh venenatis cras sed felis eget velit aliquet sagittis id. Sed risus ultricies tristique nulla aliquet enim tortor at. Vitae aliquet nec ullamcorper sit. Arcu non odio euismod lacinia at quis. Faucibus vitae aliquet nec ullamcorper sit amet. Praesent tristique magna sit amet purus gravida quis blandit. Velit euismod in pellentesque massa placerat duis. A diam sollicitudin tempor id eu. Adipiscing at in tellus integer. Placerat duis ultricies lacus sed turpis tincidunt id. Faucibus a pellentesque sit amet porttitor eget dolor morbi non. Cras sed felis eget velit aliquet sagittis id. Risus nec feugiat in fermentum posuere. Elit duis tristique sollicitudin nibh. Mattis rhoncus urna neque viverra justo nec ultrices dui sapien. Nisl pretium fusce id velit ut tortor. Tincidunt augue interdum velit euismod in pellentesque.  Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Enim diam vulputate ut pharetra. Justo ege...\",\"uuid\":\"abc123xyz456\",\"trunc_attrs\":[\"someLong1\",\"someLong2\",\"someLong5\"]}";
95      
96      //assertEquals(expectedString, json);
97      
98      //{"description":"This is the description of the group","displayName":"Some name","id":"abc123","name":"someName","objectClass":["groupOfNames","memberGroup","top"],"uuid":"abc123xyz456"}
99  
100     ProvisioningGroup provisioningGroup2 = new ProvisioningGroup(false);
101     provisioningGroup2.assignAttributeValue("name", "someName");
102     provisioningGroup2.assignAttributeValue("id", "abc123");
103     provisioningGroup2.addAttributeValue("member", "jsmith");
104     provisioningGroup2.addAttributeValue("member", "ajackson");
105     provisioningGroup2.addAttributeValue("member", "tjohnson");
106     provisioningGroup2.addAttributeValue("objectClass", "groupOfNames");
107     provisioningGroup2.addAttributeValue("objectClass", "top");
108     provisioningGroup2.addAttributeValue("objectClass", "memberGroup");
109     provisioningGroup2.assignAttributeValue("description", "This is the description of the group");
110     provisioningGroup2.assignAttributeValue("displayName", "Some name");
111     provisioningGroup2.assignAttributeValue("uuid", "abc123xyz456");
112 
113     // 1426
114     provisioningGroup2.assignAttributeValue("someLong1", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae auctor eu augue ut lectus arcu bibendum. Egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam. In metus vulputate eu scelerisque felis imperdiet proin fermentum leo. Scelerisque fermentum dui faucibus in ornare quam. Massa eget egestas purus viverra accumsan in nisl. Dapibus ultrices in iaculis nunc sed augue lacus viverra vitae. Aliquam malesuada bibendum arcu vitae. Quam adipiscing vitae proin sagittis nisl rhoncus mattis. Vivamus at augue eget arcu dictum. Blandit aliquam etiam erat velit scelerisque in dictum. Egestas pretium aenean pharetra magna ac placerat vestibulum lectus. Egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam. Egestas fringilla phasellus faucibus scelerisque eleifend. Erat velit scelerisque in dictum non consectetur a.  Fusce ut placerat orci nulla pellentesque dignissim enim sit. Vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt. Aliquet nibh praesent tristique magna sit amet purus. Sit amet commodo nulla facilisi. Fermentum dui faucibus in ornare quam viverra. Bibendum at varius vel pharetra vel turpis. Volutpat est velit egestas dui id. Elementum eu facilisis sed odio morbi quis commodo odio aenean. Integer malesuada nunc vel risus commodo viverra maecenas. Tempus quam pellentesque nec nam aliquam sem.");
115     
116     // 982
117     provisioningGroup2.assignAttributeValue("someLong2", "Vestibulum lorem sed risus ultricies tristique nulla. Purus viverra accumsan in nisl nisi scelerisque eu. Mattis pellentesque id nibh tortor. Amet dictum sit amet justo donec enim. Justo nec ultrices dui sapien eget mi proin. Faucibus scelerisque eleifend donec pretium. Dignissim sodales ut eu sem integer vitae justo eget magna. Consequat ac felis donec et odio pellentesque diam volutpat commodo. Porttitor eget dolor morbi non arcu risus. Pharetra et ultrices neque ornare aenean euismod elementum nisi quis. Erat nam at lectus urna duis convallis convallis tellus. Nec nam aliquam sem et tortor consequat id porta. Sit amet tellus cras adipiscing enim. Tortor aliquam nulla facilisi cras fermentum odio eu. Proin fermentum leo vel orci. Et netus et malesuada fames ac turpis egestas sed. Proin libero nunc consequat interdum. Ridiculus mus mauris vitae ultricies leo integer malesuada. Sapien eget mi proin sed libero enim sed. Diam maecenas ultricies mi eget mauris pharetra et.");
118     
119     // 765
120     provisioningGroup2.assignAttributeValue("someLong3", "Viverra maecenas accumsan lacus vel facilisis volutpat est velit. Quam lacus suspendisse faucibus interdum posuere lorem ipsum dolor sit. Et malesuada fames ac turpis egestas. Sit amet dictum sit amet justo. Sit amet consectetur adipiscing elit pellentesque habitant morbi tristique. Ullamcorper velit sed ullamcorper morbi tincidunt. Justo eget magna fermentum iaculis eu non diam. Dolor sit amet consectetur adipiscing elit ut aliquam purus. Mattis aliquam faucibus purus in massa. Felis eget velit aliquet sagittis id consectetur purus ut. Hendrerit dolor magna eget est lorem. Tortor id aliquet lectus proin. Velit euismod in pellentesque massa placerat duis. Eu scelerisque felis imperdiet proin fermentum. Porttitor leo a diam sollicitudin tempor id eu nisl.");
121     
122     // 592
123     provisioningGroup2.assignAttributeValue("someLong4", "Facilisi morbi tempus iaculis urna id. Sollicitudin tempor id eu nisl nunc. Ultrices eros in cursus turpis massa tincidunt dui. Ultrices vitae auctor eu augue ut lectus arcu bibendum at. Nunc consequat interdum varius sit amet. Consectetur libero id faucibus nisl. Imperdiet sed euismod nisi porta lorem mollis. Cras pulvinar mattis nunc sed blandit libero volutpat sed cras. A diam sollicitudin tempor id eu nisl nunc mi. Non blandit massa enim nec dui nunc. Sapien eget mi proin sed libero. Pulvinar neque laoreet suspendisse interdum");
124     
125     // 1617
126     provisioningGroup2.assignAttributeValue("someLong5", "Odio tempor orci dapibus ultrices in iaculis nunc. Nibh venenatis cras sed felis eget velit aliquet sagittis id. Sed risus ultricies tristique nulla aliquet enim tortor at. Vitae aliquet nec ullamcorper sit. Arcu non odio euismod lacinia at quis. Faucibus vitae aliquet nec ullamcorper sit amet. Praesent tristique magna sit amet purus gravida quis blandit. Velit euismod in pellentesque massa placerat duis. A diam sollicitudin tempor id eu. Adipiscing at in tellus integer. Placerat duis ultricies lacus sed turpis tincidunt id. Faucibus a pellentesque sit amet porttitor eget dolor morbi non. Cras sed felis eget velit aliquet sagittis id. Risus nec feugiat in fermentum posuere. Elit duis tristique sollicitudin nibh. Mattis rhoncus urna neque viverra justo nec ultrices dui sapien. Nisl pretium fusce id velit ut tortor. Tincidunt augue interdum velit euismod in pellentesque.  Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Enim diam vulputate ut pharetra. Justo eget magna fermentum iaculis eu non. Molestie nunc non blandit massa enim nec dui nunc mattis. Ut tortor pretium viverra suspendisse potenti nullam ac. Ultricies mi quis hendrerit dolor magna eget est lorem ipsum. Nibh cras pulvinar mattis nunc sed blandit. Adipiscing bibendum est ultricies integer quis auctor elit. Sed cras ornare arcu dui vivamus arcu. Odio ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Lorem donec massa sapien faucibus. Scelerisque eleifend donec pretium vulputate. Lacus suspendisse faucibus interdum posuere lorem ipsum dolor. Ut faucibus pulvinar elementum integer enim neque.");
127 
128     Set<String> attributeNamesDifferentForCache = provisioningGroup.attributeNamesDifferentForCache(provisioningGroup2, "member");
129     assertEquals(0, GrouperUtil.length(attributeNamesDifferentForCache));
130   
131     provisioningGroup2.assignAttributeValue("name", "someOtherName");
132     provisioningGroup2.assignAttributeValue("id", "acb234");
133     attributeNamesDifferentForCache = provisioningGroup.attributeNamesDifferentForCache(provisioningGroup2, "member");
134     
135     assertEquals(2, GrouperUtil.length(attributeNamesDifferentForCache));
136     assertTrue(attributeNamesDifferentForCache.contains("name"));
137     assertTrue(attributeNamesDifferentForCache.contains("id"));
138     
139   }
140 
141   
142   
143 }