/*
* Copyright (C) 2014 Civilian Framework.
*
* Licensed under the Civilian License (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.civilian-framework.org/license.txt
*
* 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 org.civilian.resource.scan;
import java.util.Iterator;
import java.util.NoSuchElementException;
import org.civilian.CivTest;
import org.civilian.Resource;
import org.civilian.controller.ControllerNaming;
import org.civilian.testcase1.Test1PathParams;
import org.junit.Test;
public class ResourceScanTest extends CivTest
{
@Test public void test() throws Exception
{
ResourceScan scan = new ResourceScan("org.civilian.testcase1", new ControllerNaming(), Test1PathParams.MAP, null);
Resource resource = scan.run();
// resource.print(System.out);
Iterator<Resource> it = resource.iterator();
assertNext(it, "/", "org.civilian.testcase1.IndexController");
assertNext(it, "/alpha", "org.civilian.testcase1.AlphaController");
assertNext(it, "/beta", "org.civilian.testcase1.beta.IndexController");
assertNext(it, "/beta/imspecial", "org.civilian.testcase1.beta.PathController");
assertNext(it, "/beta/some", "org.civilian.testcase1.beta.SomeController");
assertNext(it, "/beta/some/thing", "org.civilian.testcase1.beta.SomeController:thing");
assertNext(it, "/beta/{beta}", "org.civilian.testcase1.beta.object.IndexController");
assertNext(it, "/mixed", "org.civilian.testcase1.miXed.IndexController");
assertNext(it, "/mixed/something", "org.civilian.testcase1.miXed.someThingController");
assertNext(it, "/{gammaId}", "org.civilian.testcase1.GammaController");
assertFalse(it.hasNext());
try
{
it.next();
fail();
}
catch(NoSuchElementException e)
{
}
}
private void assertNext(Iterator<Resource> it, String route, String ctrlSig)
{
assertTrue(it.hasNext());
Resource r = it.next();
assertEquals(route, r.getRoute().toString());
assertEquals(ctrlSig, r.getControllerSignature());
}
}