Maybe not the cleanest code, but this code works for me with task
queue testing, assuming all the right jars on the classpath, with
LocalServiceTestCase being identical to the class online:

public class TasksServiceTest extends LocalServiceTestCase {

        @Override
    public void setUp() throws Exception {
        super.setUp();
        ApiProxyLocalImpl proxy = (ApiProxyLocalImpl)
ApiProxy.getDelegate();
        LocalTaskQueue taskQueue = (LocalTaskQueue) proxy.getService
(LocalTaskQueue.SERVICE_NAME);
        LocalServiceContext ctx = new LocalServiceContext() {

                        public File getAppDir() {
                                File file = new File("war");
                                return file;
                        }
                };
                taskQueue.init(ctx, null);
        taskQueue.start();
    }

        public void testSomeTask(){
                ApiProxyLocalImpl proxy = (ApiProxyLocalImpl) 
ApiProxy.getDelegate
();
        LocalTaskQueue taskQueue = (LocalTaskQueue) proxy.getService
(LocalTaskQueue.SERVICE_NAME);
        assertEquals(0,taskQueue.getQueueStateInfo().get
("default").getCountTasks());
        String taskBody = executeYourDefaultQueueTaskHere();
        assertEquals(1,taskQueue.getQueueStateInfo().get
("default").getCountTasks());
        List<TaskStateInfo> taskStates = taskQueue.getQueueStateInfo
().get("default").getTaskInfo();
        assertNotNull(taskStates);
        assertEquals(1,taskStates.size());
        TaskStateInfo task = taskStates.get(0);
        assertEquals(taskBody,task.getBody());
        assertEquals(Method.POST.name(),task.getMethod());
        assertEquals("/task/expected_path_to_task",task.getUrl());
        }

    @Override
    public void tearDown() throws Exception {
        tasksService = null;
        ApiProxyLocalImpl proxy = (ApiProxyLocalImpl)
ApiProxy.getDelegate();
        LocalTaskQueue taskQueue = (LocalTaskQueue) proxy.getService
(LocalTaskQueue.SERVICE_NAME);
        taskQueue.flushQueue("default");
        taskQueue.stop();
        super.tearDown();
    }
}

On Oct 29, 9:16 am, Dominik Steiner <dominik.j.stei...@googlemail.com>
wrote:
> yes, i can confirm that i saw the same issue here in my unit test,
> where i then had to mock out the task queue calls in order to make it
> work, but would be nicer if it would run out of the box
>
> On Oct 28, 10:08 am, Patrizio Munzi <patrizio.mu...@eris4.com> wrote:
>
> > Hi all,
>
> > I'm getting the following exception using Task Queues in Unit Tests:
>
> > ----------------------------------
> > com.google.apphosting.api.ApiProxy$CallNotFoundException: The API
> > package 'taskqueue' or call 'Add()' was not found.
> >     at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:77)
> >     at
> > com.google.appengine.api.labs.taskqueue.QueueApiHelper.makeSyncCall(QueueApiHelper.java:23)
> >     at
> > com.google.appengine.api.labs.taskqueue.QueueImpl.add(QueueImpl.java:188)
> >     at
> > com.eris4.warp4.callfriends.server.taskqueue.MultiOperationsTask.enqueue(MultiOperationsTask.java:73)
> >     at
> > com.eris4.warp4.callfriends.server.taskqueue.MultiOperationsTask.enqueue(MultiOperationsTask.java:66)
> >     at
> > com.eris4.warp4.callfriends.server.taskqueue.MultiOperationsTask.enqueue(MultiOperationsTask.java:66)
> >     at
> > com.eris4.warp4.callfriends.unittest.server.taskqueue.MultiOperationsTaskTest.testOver10000BytesTaskSize(MultiOperationsTaskTest.java:33)
> >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >     at java.lang.reflect.Method.invoke(Unknown Source)
> >     at junit.framework.TestCase.runTest(TestCase.java:164)
> >     at junit.framework.TestCase.runBare(TestCase.java:130)
> >     at junit.framework.TestResult$1.protect(TestResult.java:106)
> >     at junit.framework.TestResult.runProtected(TestResult.java:124)
> >     at junit.framework.TestResult.run(TestResult.java:109)
> >     at junit.framework.TestCase.run(TestCase.java:120)
> >     at junit.framework.TestSuite.runTest(TestSuite.java:230)
> >     at junit.framework.TestSuite.run(TestSuite.java:225)
> >     at
> > org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
> >     at
> > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> >     at
> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> >     at
> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> >     at
> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> >     at
> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> > ---------------------------------
>
> > My classpath already contains the jars:
> > - appengine-local-runtime.jar
> > - appengine-api-stubs.jar
> > - appengine-api-labs.jar
>
> > Regards,
> >     Patrizio

--

You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=.


Reply via email to