package org.odata4j.test.integration.expressions; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.core4j.Funcs; import org.junit.Test; import org.odata4j.consumer.ODataConsumer; import org.odata4j.producer.inmemory.InMemoryProducer; import org.odata4j.producer.resources.DefaultODataProducerProvider; import org.odata4j.producer.server.ODataServer; import org.odata4j.test.integration.AbstractRuntimeTest; public class ScenarioTopCountTest extends AbstractRuntimeTest { public ScenarioTopCountTest(RuntimeFacadeType type) { super(type); } @Test public void testScenario() throws Exception { String uri = "http://localhost:18888/TestService.svc/"; InMemoryProducer producer = new InMemoryProducer("ScenarioTest"); DefaultODataProducerProvider.setInstance(producer); ODataServer server = this.rtFacade.startODataServer(uri); try { ODataConsumer c = this.rtFacade.createODataConsumer(uri, null); List<Foo> foos = new ArrayList<Foo>(); producer.register(Foo.class, "Foos1", Funcs.constant((Iterable<Foo>) foos), "Id"); foos.add(new Foo("1", 3, 3, "Alpha", true)); foos.add(new Foo("2", 2, 2, null, false)); foos.add(new Foo("3", 1, 1, "Gamma", true)); int count; count = c.getEntitiesCount("Foos1").execute(); assertEquals(3, count); count = c.getEntitiesCount("Foos1").top(1).execute(); assertEquals(1, count); count = c.getEntitiesCount("Foos1").top(2).execute(); assertEquals(2, count); server.stop(); } finally { server.stop(); } } public static class Foo { private final String id; private final int int32; private final int int64; private final String name; private final boolean bool; public Foo(String id, int int32, int int64, String name, boolean bool) { this.id = id; this.int32 = int32; this.int64 = int64; this.name = name; this.bool = bool; } public String getId() { return id; } public int getInt32() { return int32; } public int getInt64() { return int64; } public String getName() { return name; } public boolean getBoolean() { return bool; } } }