/* * Copyright 2015 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.appengine.samples; import static org.junit.Assert.assertEquals; import com.google.appengine.api.taskqueue.QueueFactory; import com.google.appengine.api.taskqueue.TaskOptions; import com.google.appengine.api.taskqueue.dev.LocalTaskQueue; import com.google.appengine.api.taskqueue.dev.QueueStateInfo; import com.google.appengine.tools.development.testing.LocalServiceTestHelper; import com.google.appengine.tools.development.testing.LocalTaskQueueTestConfig; import org.junit.After; import org.junit.Before; import org.junit.Test; public class TaskQueueConfigTest { // [START LocalServiceTestHelper] private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalTaskQueueTestConfig() .setQueueXmlPath("src/main/webapp/WEB-INF/queue.xml")); //[END LocalServiceTestHelper] @Before public void setUp() { helper.setUp(); } @After public void tearDown() { helper.tearDown(); } // Run this test twice to demonstrate we're not leaking state across tests. // If we _are_ leaking state across tests we'll get an exception on the // second test because there will already be a task with the given name. private void doTest() throws InterruptedException { // [START QueueFactory] QueueFactory.getQueue("my-queue-name").add(TaskOptions.Builder.withTaskName("task29")); // [END QueueFactory] // Give the task time to execute if tasks are actually enabled (which they // aren't, but that's part of the test). Thread.sleep(1000); LocalTaskQueue ltq = LocalTaskQueueTestConfig.getLocalTaskQueue(); QueueStateInfo qsi = ltq.getQueueStateInfo().get(QueueFactory.getQueue("my-queue-name").getQueueName()); assertEquals(1, qsi.getTaskInfo().size()); assertEquals("task29", qsi.getTaskInfo().get(0).getTaskName()); } @Test public void testTaskGetsScheduled1() throws InterruptedException { doTest(); } @Test public void testTaskGetsScheduled2() throws InterruptedException { doTest(); } }