Search in sources :

Example 41 with MetaResource

use of io.crnk.meta.model.resource.MetaResource in project crnk-framework by crnk-project.

the class MetaFilteringTest method checkInsertableAttribute.

@Test
public void checkInsertableAttribute() throws IOException {
    RegistryEntry entry = boot.getResourceRegistry().getEntry(Task.class);
    ResourceInformation resourceInformation = entry.getResourceInformation();
    ResourceField projectField = resourceInformation.findFieldByUnderlyingName("project");
    Mockito.when(filter.filterField(Mockito.eq(projectField), Mockito.eq(HttpMethod.POST))).thenReturn(FilterBehavior.NONE);
    Mockito.when(filter.filterField(Mockito.eq(projectField), Mockito.eq(HttpMethod.PATCH))).thenReturn(FilterBehavior.FORBIDDEN);
    QuerySpec querySpec = new QuerySpec(MetaResource.class);
    querySpec.addFilter(new FilterSpec(Arrays.asList("name"), FilterOperator.EQ, "Tasks"));
    ResourceList<MetaResource> list = repository.findAll(querySpec);
    Assert.assertEquals(1, list.size());
    MetaResource taskMeta = list.get(0);
    Assert.assertTrue(taskMeta.hasAttribute("project"));
    MetaAttribute projectAttr = taskMeta.getAttribute("project");
    Assert.assertTrue(projectAttr.isInsertable());
    Assert.assertFalse(projectAttr.isUpdatable());
}
Also used : ResourceField(io.crnk.core.engine.information.resource.ResourceField) ResourceInformation(io.crnk.core.engine.information.resource.ResourceInformation) MetaResource(io.crnk.meta.model.resource.MetaResource) MetaAttribute(io.crnk.meta.model.MetaAttribute) QuerySpec(io.crnk.core.queryspec.QuerySpec) FilterSpec(io.crnk.core.queryspec.FilterSpec) RegistryEntry(io.crnk.core.engine.registry.RegistryEntry) Test(org.junit.Test)

Example 42 with MetaResource

use of io.crnk.meta.model.resource.MetaResource in project crnk-framework by crnk-project.

the class MetaFilteringTest method checkResourceMeta.

private void checkResourceMeta(boolean readable, boolean insertable, boolean updatable, boolean deletable) throws IOException {
    QuerySpec querySpec = new QuerySpec(MetaResource.class);
    querySpec.addFilter(new FilterSpec(Arrays.asList("name"), FilterOperator.EQ, "Tasks"));
    ResourceList<MetaResource> list = repository.findAll(querySpec);
    boolean filtered = !readable && !insertable && !updatable && !deletable;
    Assert.assertEquals(filtered, list.isEmpty());
    if (!filtered) {
        MetaResource metaResource = list.get(0);
        Assert.assertEquals(readable, metaResource.isReadable());
        Assert.assertEquals(deletable, metaResource.isDeletable());
        Assert.assertEquals(insertable, metaResource.isInsertable());
        Assert.assertEquals(updatable, metaResource.isUpdatable());
        MetaAttribute idAttr = metaResource.getAttribute("id");
        Assert.assertNotNull(idAttr);
    }
}
Also used : MetaResource(io.crnk.meta.model.resource.MetaResource) MetaAttribute(io.crnk.meta.model.MetaAttribute) QuerySpec(io.crnk.core.queryspec.QuerySpec) FilterSpec(io.crnk.core.queryspec.FilterSpec)

Example 43 with MetaResource

use of io.crnk.meta.model.resource.MetaResource in project crnk-framework by crnk-project.

the class MetaMetaTest method testLinksNaming.

@Test
public void testLinksNaming() {
    MetaResource taskMeta = resourceProvider.getMeta(Task.class);
    MetaAttribute linksInformation = taskMeta.getAttribute("linksInformation");
    MetaType type = linksInformation.getType();
    Assert.assertEquals(type.getId(), "resources.tasks$links");
    Assert.assertEquals(type.getName(), "TaskLinks");
}
Also used : MetaResource(io.crnk.meta.model.resource.MetaResource) MetaAttribute(io.crnk.meta.model.MetaAttribute) MetaType(io.crnk.meta.model.MetaType) Test(org.junit.Test)

Example 44 with MetaResource

use of io.crnk.meta.model.resource.MetaResource in project crnk-framework by crnk-project.

the class MetaMetaTest method testNonMetaElementMutable.

@Test
public void testNonMetaElementMutable() {
    MetaResource dataMeta = resourceProvider.getMeta(Task.class);
    Assert.assertTrue(dataMeta.isUpdatable());
    Assert.assertTrue(dataMeta.isInsertable());
    Assert.assertTrue(dataMeta.isDeletable());
    Assert.assertNotEquals(0, dataMeta.getAttributes().size());
    for (MetaAttribute attr : dataMeta.getAttributes()) {
        Assert.assertTrue(attr.isInsertable());
    }
}
Also used : MetaResource(io.crnk.meta.model.resource.MetaResource) MetaAttribute(io.crnk.meta.model.MetaAttribute) Test(org.junit.Test)

Example 45 with MetaResource

use of io.crnk.meta.model.resource.MetaResource in project crnk-framework by crnk-project.

the class MetaModuleTest method checkRegistryUpdateTriggerMetaUpdate.

@Test
public void checkRegistryUpdateTriggerMetaUpdate() {
    MetaLookup lookup = metaModule.getLookup();
    List<MetaResource> prevResources = lookup.findElements(MetaResource.class);
    ResourceRegistry resourceRegistry = boot.getResourceRegistry();
    resourceRegistry.addEntry(createRegistryEntry());
    // check request local caching against concurrent modifications
    Assert.assertEquals(prevResources.size(), metaModule.getLookup().findElements(MetaResource.class).size());
    // check new meta available for next request
    metaModule.getLookupRequestLocal().remove();
    Assert.assertEquals(prevResources.size() + 1, metaModule.getLookup().findElements(MetaResource.class).size());
}
Also used : MetaResource(io.crnk.meta.model.resource.MetaResource) ResourceRegistry(io.crnk.core.engine.registry.ResourceRegistry) Test(org.junit.Test)

Aggregations

MetaResource (io.crnk.meta.model.resource.MetaResource)45 Test (org.junit.Test)36 QuerySpec (io.crnk.core.queryspec.QuerySpec)17 MetaAttribute (io.crnk.meta.model.MetaAttribute)16 FilterSpec (io.crnk.core.queryspec.FilterSpec)8 AbstractJpaJerseyTest (io.crnk.jpa.AbstractJpaJerseyTest)8 AbstractMetaTest (io.crnk.meta.AbstractMetaTest)7 ResourceInformation (io.crnk.core.engine.information.resource.ResourceInformation)6 RegistryEntry (io.crnk.core.engine.registry.RegistryEntry)6 MetaElement (io.crnk.meta.model.MetaElement)6 ResourceField (io.crnk.core.engine.information.resource.ResourceField)4 MetaDataObject (io.crnk.meta.model.MetaDataObject)3 MetaKey (io.crnk.meta.model.MetaKey)3 MetaResourceField (io.crnk.meta.model.resource.MetaResourceField)3 ResourceFilterDirectory (io.crnk.core.engine.filter.ResourceFilterDirectory)2 ResourceRegistry (io.crnk.core.engine.registry.ResourceRegistry)2 Module (io.crnk.core.module.Module)2 TSContainerElement (io.crnk.gen.typescript.model.TSContainerElement)2 TSInterfaceType (io.crnk.gen.typescript.model.TSInterfaceType)2 TSType (io.crnk.gen.typescript.model.TSType)2