// Path: katharsis-meta/src/main/java/io/katharsis/meta/model/resource/MetaResource.java
// @JsonApiResource(type = "meta/resource")
// public class MetaResource extends MetaJsonObject {
// 
// 	private String resourceType;
// 
// 	public void setResourceType(String resourceType) {
// 		this.resourceType = resourceType;
// 	}
// 
// 	public String getResourceType() {
// 		return resourceType;
// 	}
// 
// 	@Override
// 	public List<MetaResourceField> getDeclaredAttributes() {
// 		return (List<MetaResourceField>) super.getDeclaredAttributes();
// 	}
// }
// 
// Path: katharsis-meta/src/main/java/io/katharsis/meta/model/resource/MetaResourceField.java
// @JsonApiResource(type = "meta/resourceField")
// public class MetaResourceField extends MetaAttribute {
// 
// 	private boolean meta;
// 
// 	private boolean links;
// 
// 	public boolean isMeta() {
// 		return meta;
// 	}
// 
// 	public void setMeta(boolean meta) {
// 		this.meta = meta;
// 	}
// 
// 	public boolean isLinks() {
// 		return links;
// 	}
// 
// 	public void setLinks(boolean links) {
// 		this.links = links;
// 	}
// 
// }


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import io.katharsis.meta.mock.model.Schedule;
import io.katharsis.meta.mock.model.ScheduleRepository.ScheduleListLinks;
import io.katharsis.meta.mock.model.ScheduleRepository.ScheduleListMeta;
import io.katharsis.meta.mock.model.Task;
import io.katharsis.meta.mock.model.Task.TaskLinksInformation;
import io.katharsis.meta.mock.model.Task.TaskMetaInformation;
import io.katharsis.meta.model.MetaElement;
import io.katharsis.meta.model.MetaKey;
import io.katharsis.meta.model.resource.MetaResource;
import io.katharsis.meta.model.resource.MetaResourceAction;
import io.katharsis.meta.model.resource.MetaResourceAction.MetaRepositoryActionType;
import io.katharsis.meta.model.resource.MetaResourceField;
import io.katharsis.meta.model.resource.MetaResourceRepository;
import io.katharsis.meta.provider.MetaProvider;
import io.katharsis.meta.provider.resource.ResourceMetaProvider;
import io.katharsis.resource.registry.ResourceRegistryAware;
	}

	@Test
	public void testPrimaryKey() {
		MetaResource meta = lookup.getMeta(Schedule.class, MetaResource.class);

		MetaKey primaryKey = meta.getPrimaryKey();
		Assert.assertNotNull("id", primaryKey.getName());
		Assert.assertEquals(1, primaryKey.getElements().size());
		Assert.assertEquals("id", primaryKey.getElements().get(0).getName());
		Assert.assertSame(primaryKey.getElements().get(0), meta.getAttribute("id"));
		Assert.assertTrue(meta.getPrimaryKey().isUnique());
	}

	@Test
	public void testResourceProperties() {
		MetaResource meta = lookup.getMeta(Schedule.class, MetaResource.class);

		Assert.assertEquals("schedules", meta.getResourceType());
		Assert.assertEquals("Schedule", meta.getName());
		Assert.assertEquals("app.Schedule", meta.getId());

		Assert.assertEquals(Schedule.class, meta.getImplementationClass());
		Assert.assertEquals(Schedule.class, meta.getImplementationType());
		Assert.assertNull(meta.getParent());
		Assert.assertTrue(meta.getSubTypes().isEmpty());
	}

	@Test
	public void testLinksAttribute() {
// Path: katharsis-meta/src/main/java/io/katharsis/meta/model/resource/MetaResource.java
// @JsonApiResource(type = "meta/resource")
// public class MetaResource extends MetaJsonObject {
// 
// 	private String resourceType;
// 
// 	public void setResourceType(String resourceType) {
// 		this.resourceType = resourceType;
// 	}
// 
// 	public String getResourceType() {
// 		return resourceType;
// 	}
// 
// 	@Override
// 	public List<MetaResourceField> getDeclaredAttributes() {
// 		return (List<MetaResourceField>) super.getDeclaredAttributes();
// 	}
// }
// 
// Path: katharsis-meta/src/main/java/io/katharsis/meta/model/resource/MetaResourceField.java
// @JsonApiResource(type = "meta/resourceField")
// public class MetaResourceField extends MetaAttribute {
// 
// 	private boolean meta;
// 
// 	private boolean links;
// 
// 	public boolean isMeta() {
// 		return meta;
// 	}
// 
// 	public void setMeta(boolean meta) {
// 		this.meta = meta;
// 	}
// 
// 	public boolean isLinks() {
// 		return links;
// 	}
// 
// 	public void setLinks(boolean links) {
// 		this.links = links;
// 	}
// 
// }


// Path: katharsis-meta/src/test/java/io/katharsis/meta/ResourceMetaProviderTest.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import io.katharsis.meta.mock.model.Schedule;
import io.katharsis.meta.mock.model.ScheduleRepository.ScheduleListLinks;
import io.katharsis.meta.mock.model.ScheduleRepository.ScheduleListMeta;
import io.katharsis.meta.mock.model.Task;
import io.katharsis.meta.mock.model.Task.TaskLinksInformation;
import io.katharsis.meta.mock.model.Task.TaskMetaInformation;
import io.katharsis.meta.model.MetaElement;
import io.katharsis.meta.model.MetaKey;
import io.katharsis.meta.model.resource.MetaResource;
import io.katharsis.meta.model.resource.MetaResourceAction;
import io.katharsis.meta.model.resource.MetaResourceAction.MetaRepositoryActionType;
import io.katharsis.meta.model.resource.MetaResourceField;
import io.katharsis.meta.model.resource.MetaResourceRepository;
import io.katharsis.meta.provider.MetaProvider;
import io.katharsis.meta.provider.resource.ResourceMetaProvider;
import io.katharsis.resource.registry.ResourceRegistryAware;

	}

	@Test
	public void testPrimaryKey() {
		MetaResource meta = lookup.getMeta(Schedule.class, MetaResource.class);

		MetaKey primaryKey = meta.getPrimaryKey();
		Assert.assertNotNull("id", primaryKey.getName());
		Assert.assertEquals(1, primaryKey.getElements().size());
		Assert.assertEquals("id", primaryKey.getElements().get(0).getName());
		Assert.assertSame(primaryKey.getElements().get(0), meta.getAttribute("id"));
		Assert.assertTrue(meta.getPrimaryKey().isUnique());
	}

	@Test
	public void testResourceProperties() {
		MetaResource meta = lookup.getMeta(Schedule.class, MetaResource.class);

		Assert.assertEquals("schedules", meta.getResourceType());
		Assert.assertEquals("Schedule", meta.getName());
		Assert.assertEquals("app.Schedule", meta.getId());

		Assert.assertEquals(Schedule.class, meta.getImplementationClass());
		Assert.assertEquals(Schedule.class, meta.getImplementationType());
		Assert.assertNull(meta.getParent());
		Assert.assertTrue(meta.getSubTypes().isEmpty());
	}

	@Test
	public void testLinksAttribute() {
		MetaResource meta = lookup.getMeta(Task.class, MetaResource.class);