package org.zdevra.guice.mvc;
import junit.framework.Assert;
import org.testng.annotations.Test;
import org.zdevra.guice.mvc.parameters.ParamProcessor;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* @author Zdenko Vrabel (zdenko.vrabel@celum.com)
*/
@Test
public class MethodInvokerTest {
@Test
public void sortMethods() {
List<ParamProcessor> paramProcs = Collections.emptyList();
MappingData data = new MappingData(null, null, HttpMethodType.POST, "", "", null);
MethodInvoker a = new MethodInvokerImpl(null, null, null, null, paramProcs, 0);
MethodInvoker b = new MethodInvokerImpl(null, null, null, null, paramProcs, -10);
MethodInvoker c = new MethodInvokerImpl(null, null, null, null, paramProcs, 0);
MethodInvoker d = new MethodInvokerFilter(data, new MethodInvokerImpl(null, null, null, null, paramProcs, 20));
MethodInvoker e = new MethodInvokerImpl(null, null, null, null, paramProcs, 10);
List<MethodInvoker> invokers = new LinkedList<MethodInvoker>();
invokers.add(a);
invokers.add(b);
invokers.add(c);
invokers.add(d);
invokers.add(e);
Collections.sort(invokers);
Assert.assertEquals(b, invokers.get(0));
Assert.assertEquals(e, invokers.get(3));
Assert.assertEquals(d, invokers.get(4));
}
}