package net.eusashead.bjugquerydsl.hateoas; import junit.framework.Assert; import net.eusashead.bjugquerydsl.data.entity.Customer; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.springframework.web.util.UriTemplate; @RunWith(JUnit4.class) public class ResourceMetadataBuilderTest { @Test public void testBuild() throws SecurityException, NoSuchMethodException { ResourceMetadataBuilder builder = new ResourceMetadataBuilder(); builder.uriTemplate("/customer/{customerId}"); builder.identityProperty("customerId", Customer.class.getMethod("getCustomerId")); builder.simpleProperty("firstName", Customer.class.getMethod("getFirstName")); builder.embeddedResource("baskets", "/basket/{basketId}", Customer.class.getMethod("getBaskets")); ResourceMetadata metadata = builder.build(); Assert.assertEquals(new UriTemplate("/customer/{customerId}").toString(), metadata.getUriTemplate().toString()); Assert.assertEquals(1, metadata.getIdentityProperties().size()); Assert.assertEquals(new IdentityProperty("customerId", Customer.class.getMethod("getCustomerId")), metadata.getIdentityProperties().get(0)); Assert.assertEquals(1, metadata.getSimpleProperties().size()); Assert.assertEquals(new SimpleProperty("firstName", Customer.class.getMethod("getFirstName")), metadata.getSimpleProperties().get(0)); Assert.assertEquals(1, metadata.getEmbeddedResources().size()); // UriTemplate doesn't implement equals very well //Assert.assertEquals(new EmbeddedResource("baskets", new UriTemplate("/basket/{basketId}"), Customer.class.getMethod("getBaskets")), metadata.getEmbeddedResources().get(0)); } }