Search in sources :

Example 1 with LESSObjectPropertyResourceReference

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);
}
Also used : ObjectPropertyReference(org.xwiki.model.reference.ObjectPropertyReference) LESSObjectPropertyResourceReference(org.xwiki.lesscss.internal.resources.LESSObjectPropertyResourceReference) ArrayList(java.util.ArrayList) DocumentUpdatedEvent(org.xwiki.bridge.event.DocumentUpdatedEvent) BaseObject(com.xpn.xwiki.objects.BaseObject) EntityReferenceSerializer(org.xwiki.model.reference.EntityReferenceSerializer) XWikiDocument(com.xpn.xwiki.doc.XWikiDocument) BaseObjectReference(com.xpn.xwiki.objects.BaseObjectReference) ComponentManager(org.xwiki.component.manager.ComponentManager) EntityReference(org.xwiki.model.reference.EntityReference) BaseObject(com.xpn.xwiki.objects.BaseObject) DocumentReference(org.xwiki.model.reference.DocumentReference) Test(org.junit.Test)

Aggregations

XWikiDocument (com.xpn.xwiki.doc.XWikiDocument)1 BaseObject (com.xpn.xwiki.objects.BaseObject)1 BaseObjectReference (com.xpn.xwiki.objects.BaseObjectReference)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1 DocumentUpdatedEvent (org.xwiki.bridge.event.DocumentUpdatedEvent)1 ComponentManager (org.xwiki.component.manager.ComponentManager)1 LESSObjectPropertyResourceReference (org.xwiki.lesscss.internal.resources.LESSObjectPropertyResourceReference)1 DocumentReference (org.xwiki.model.reference.DocumentReference)1 EntityReference (org.xwiki.model.reference.EntityReference)1 EntityReferenceSerializer (org.xwiki.model.reference.EntityReferenceSerializer)1 ObjectPropertyReference (org.xwiki.model.reference.ObjectPropertyReference)1