@Test
    public void testModularityMappingInSnakeCase() {
        mapping.setBasePackage("net.sf.cocmvc.controllers");
        mapping.setUseSnakeCase(true);

        final Class handlerType = ModuleOneController.class;
        doWithMethods(handlerType, new MethodCallback() {
            public void doWith(Method method) throws IllegalArgumentException, IllegalAccessException {
                String methodName = method.getName();

                if ("index".equals(methodName)) {
                    assertMappingPatterns(handlerType, method, "/module1/module-one");
                } else if ("fooBar".equals(methodName)) {
                    assertMappingPatterns(handlerType, method, "/module1/module-one/foo-bar");
                }
            }
        });

        final Class subModuleHandlerType = ModuleOneOneController.class;
        doWithMethods(handlerType, new MethodCallback() {
            public void doWith(Method method) throws IllegalArgumentException, IllegalAccessException {
                String methodName = method.getName();

                if ("index".equals(methodName)) {
                    assertMappingPatterns(subModuleHandlerType, method, "/module1/module11/module-one-one");
                }
                else if ("fooBar".equals(methodName)) {
                    assertMappingPatterns(subModuleHandlerType, method, "/module1/module11/module-one-one/foo-bar");
                }
            }
        });
    }