use of org.xwiki.lesscss.internal.resources.LESSObjectPropertyResourceReference in project xwiki-platform by xwiki.
the class SSXListenerTest method onEvent.
@Test
public void onEvent() throws Exception {
// Mocks
when(wikiDescriptorManager.getCurrentWikiId()).thenReturn("wiki");
XWikiDocument doc = mock(XWikiDocument.class);
BaseObject obj1 = mock(BaseObject.class);
BaseObject obj2 = mock(BaseObject.class);
List<BaseObject> objList = new ArrayList<>();
DocumentReference ssxDocRef = new DocumentReference("wiki", "XWiki", "StyleSheetExtension");
when(doc.getXObjects(eq(ssxDocRef))).thenReturn(objList);
objList.add(obj1);
objList.add(null);
objList.add(obj2);
when(obj1.getStringValue("contentType")).thenReturn("CSS");
when(obj2.getStringValue("contentType")).thenReturn("LESS");
when(obj2.getNumber()).thenReturn(2);
DocumentReference documentReference = new DocumentReference("wiki", "Space", "Doc");
when(doc.getDocumentReference()).thenReturn(documentReference);
// Because BaseObjectReference uses components from the Utils class, we need to set up the component manager
ComponentManager rootComponentManager = mock(ComponentManager.class);
Utils.setComponentManager(rootComponentManager);
ComponentManager contextComponentManager = mock(ComponentManager.class);
when(rootComponentManager.getInstance(ComponentManager.class, "context")).thenReturn(contextComponentManager);
// Mock to serialize the object
EntityReferenceSerializer entityReferenceSerializer = mock(EntityReferenceSerializer.class);
when(contextComponentManager.getInstance(EntityReferenceSerializer.TYPE_STRING, "compactwiki")).thenReturn(entityReferenceSerializer);
when(entityReferenceSerializer.serialize(any(EntityReference.class), any(EntityReference.class))).thenReturn("objName");
ObjectPropertyReference objPropertyReference = new ObjectPropertyReference("code", new BaseObjectReference(ssxDocRef, 2, documentReference));
LESSObjectPropertyResourceReference lessObjectPropertyResourceReference = new LESSObjectPropertyResourceReference(objPropertyReference, null, null);
when(lessResourceReferenceFactory.createReferenceForXObjectProperty(eq(objPropertyReference))).thenReturn(lessObjectPropertyResourceReference);
// Test
mocker.getComponentUnderTest().onEvent(new DocumentUpdatedEvent(), doc, new Object());
// Verify
verify(lessResourcesCache, atLeastOnce()).clearFromLESSResource(lessObjectPropertyResourceReference);
verify(colorThemeCache, atLeastOnce()).clearFromLESSResource(lessObjectPropertyResourceReference);
}
Aggregations