PortletApplicationDefinition pa = registry.getPortletApplication(TEST_APP);
assertNotNull("Portlet Application", pa);
System.out.println("pa = " + pa.getId());
PortletDefinitionList portlets = pa.getPortletDefinitionList(); // .get(JetspeedObjectID.createFromString(TEST_PORTLET));
Iterator pi = portlets.iterator();
PortletDefinitionComposite pd = null;
while (pi.hasNext())
{
pd = (PortletDefinitionComposite) pi.next();
assertTrue("Portlet Def not found", pd.getName().equals("EntityTestPortlet"));
}
assertNotNull("Portlet Def is null", pd);
Mock mockf1 = new Mock(Fragment.class);
mockf1.expects(new InvokeAtLeastOnceMatcher()).method("getName").will(new ReturnStub(pd.getUniqueName()));
mockf1.expects(new InvokeAtLeastOnceMatcher()).method("getId").will(new ReturnStub(TEST_ENTITY));
ContentFragment f1 = new ContentFragmentTestImpl((Fragment) mockf1.proxy(), new HashMap());
MutablePortletEntity entity = entityAccess
.generateEntityFromFragment(new ContentFragmentTestImpl(f1, new HashMap()));
PreferenceSetComposite prefs = (PreferenceSetComposite) entity.getPreferenceSet();
prefs.remove("pref1");
assertNotNull(prefs);
assertNull(prefs.get("pref1"));
// test adding a pref
prefs.add("pref1", Arrays.asList(new String[]
{ "1" }));
assertNotNull(prefs.get("pref1"));
// Remove should return the deleted pref
assertNotNull(prefs.remove("pref1"));
// Should be gone
assertNull(prefs.get("pref1"));
// Add it back so we can test tole back
prefs.add("pref1", Arrays.asList(new String[]
{ "1" }));
entityAccess.storePortletEntity(entity);
prefs = (PreferenceSetComposite) entity.getPreferenceSet();
assertNotNull(prefs.get("pref1"));
PreferenceComposite pref = (PreferenceComposite) prefs.get("pref1");
assertEquals("1", pref.getValueAt(0));
pref.setValueAt(0, "2");
assertEquals("2", pref.getValueAt(0));
entity.reset();
pref = (PreferenceComposite) prefs.get("pref1");
assertEquals("1", pref.getValueAt(0));
prefs.remove(pref);
assertNull(prefs.get("pref1"));
entity.reset();
assertNotNull(prefs.get("pref1"));
prefs.add("pref2", Arrays.asList(new String[]
{ "2", "3" }));
entity.store();
PreferenceComposite pref2 = (PreferenceComposite) prefs.get("pref2");
assertNotNull(pref2);
Iterator prefsValues = pref2.getValues();
int count = 0;
while (prefsValues.hasNext())
{
prefsValues.next();
count++;
}
assertEquals(2, count);
pref2.addValue("4");
prefsValues = pref2.getValues();
count = 0;
while (prefsValues.hasNext())
{
assertEquals(String.valueOf(count + 2), prefsValues.next());
count++;
}
assertEquals(3, count);
entity.reset();
prefsValues = pref2.getValues();
count = 0;
while (prefsValues.hasNext())
{
assertEquals(String.valueOf(count + 2), prefsValues.next());
count++;
}
assertEquals(2, count);
// testing preferences null values assignments fix, issue JS2-607
pref2.setValueAt(0, null);
assertNull("pref2.value[0] should be null", pref2.getValueAt(0));
String[] values = pref2.getValueArray();
assertEquals(2, values.length);
assertNull("pref2.value[0] should be null", values[0]);
assertEquals("3", values[1]);
pref2.setValues(new String[]{"2",null,"3"});
assertNull("pref2.value[1] should be null", pref2.getValueAt(1));
values = pref2.getValueArray();
assertEquals(3, values.length);
assertEquals("2", values[0]);
assertNull("pref2.value[1] should be null", values[1]);
assertEquals("3", values[2]);
assertTrue(pref2.isValueSet());
pref2.setValues((String[])null);
assertFalse(pref2.isValueSet());
assertTrue(pref2.getValueArray().length == 0);
entity.reset();
assertTrue(pref2.getValueArray().length == 2);
pref2.setValues(new String[]{});
assertFalse(pref2.isValueSet());
assertTrue(pref2.getValueArray().length == 0);
entity.reset();
assertTrue(pref2.getValueArray().length == 2);
MutablePortletEntity entity2 = entityAccess.getPortletEntityForFragment(f1);
assertTrue("entity id ", entity2.getId().toString().equals(TEST_ENTITY));
assertNotNull("entity's portlet ", entity2.getPortletDefinition());
mockf1.verify();
Mock mockf2 = new Mock(Fragment.class);
mockf2.expects(new InvokeAtLeastOnceMatcher()).method("getName").will(new ReturnStub(pd.getUniqueName()));
ContentFragment f2 = new ContentFragmentTestImpl((Fragment) mockf2.proxy(), new HashMap());
MutablePortletEntity entity5 = entityAccess.newPortletEntityInstance(pd);
System.out.println("before storing entity: " + entity5.getId());