Search in sources :

Example 1 with VariableAssignmentToMatcher

use of com.devonfw.cobigen.api.matchers.VariableAssignmentToMatcher in project cobigen by devonfw.

the class ClassLoadingTest method createTestDataAndConfigureMock.

/**
 * Creates simple to debug test data, which includes on container object and one child of the container object. A
 * {@link TriggerInterpreter TriggerInterpreter} will be mocked with all necessary supplier classes to mock a simple
 * java trigger interpreter. Furthermore, the mocked trigger interpreter will be directly registered in the
 * {@link PluginRegistry}.
 *
 * @return the container as input for generation interpreter for
 */
@SuppressWarnings("unchecked")
private Object createTestDataAndConfigureMock() {
    // we only need any objects for inputs to have a unique object reference to affect the mocked method
    // calls as intended
    Object container = new Object() {

        @Override
        public String toString() {
            return "container";
        }
    };
    Object firstChildResource = new Object() {

        @Override
        public String toString() {
            return "child";
        }
    };
    // Pre-processing: Mocking
    GeneratorPluginActivator activator = mock(GeneratorPluginActivator.class);
    TriggerInterpreter triggerInterpreter = mock(TriggerInterpreter.class);
    MatcherInterpreter matcher = mock(MatcherInterpreter.class);
    InputReader inputReader = mock(InputReader.class);
    when(triggerInterpreter.getType()).thenReturn("mockplugin");
    when(triggerInterpreter.getMatcher()).thenReturn(matcher);
    when(triggerInterpreter.getInputReader()).thenReturn(inputReader);
    when(inputReader.isValidInput(any())).thenReturn(true);
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(container))))).thenReturn(false);
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("package"), ANY, sameInstance(container))))).thenReturn(true);
    // Simulate container children resolution of any plug-in
    when(inputReader.getInputObjects(any(), any(Charset.class))).thenReturn(Lists.newArrayList(firstChildResource));
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(firstChildResource))))).thenReturn(true);
    // Simulate variable resolving of any plug-in
    when(matcher.resolveVariables(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(firstChildResource))), argThat(hasItemsInList(// 
    new VariableAssignmentToMatcher(equalTo("regex"), equalTo("rootPackage"), equalTo("1"), equalTo(false)), new VariableAssignmentToMatcher(equalTo("regex"), equalTo("entityName"), equalTo("3"), equalTo(false)))), any())).thenReturn(ImmutableMap.<String, String>builder().put("rootPackage", "com.devonfw").put("entityName", "Test").build());
    PluginRegistry.registerTriggerInterpreter(triggerInterpreter, activator);
    return container;
}
Also used : TriggerInterpreter(com.devonfw.cobigen.api.extension.TriggerInterpreter) MatcherToMatcher(com.devonfw.cobigen.api.matchers.MatcherToMatcher) InputReader(com.devonfw.cobigen.api.extension.InputReader) MatcherInterpreter(com.devonfw.cobigen.api.extension.MatcherInterpreter) Charset(java.nio.charset.Charset) VariableAssignmentToMatcher(com.devonfw.cobigen.api.matchers.VariableAssignmentToMatcher) GeneratorPluginActivator(com.devonfw.cobigen.api.extension.GeneratorPluginActivator)

Example 2 with VariableAssignmentToMatcher

use of com.devonfw.cobigen.api.matchers.VariableAssignmentToMatcher in project cobigen by devonfw.

the class PluginMockFactory method createSimpleJavaConfigurationMock.

/**
 * Creates simple to debug test data, which includes only one object as input. A {@link TriggerInterpreter
 * TriggerInterpreter} will be mocked with all necessary supplier classes to mock a simple java trigger interpreter.
 * Furthermore, the mocked trigger interpreter will be directly registered in the {@link PluginRegistry}.
 *
 * @return the input for generation
 */
@SuppressWarnings("unchecked")
public static Object createSimpleJavaConfigurationMock() {
    // we only need any objects for inputs to have a unique object reference to affect the mocked method
    // calls as intended
    Object input = new Object() {

        @Override
        public String toString() {
            return "input object";
        }
    };
    // Pre-processing: Mocking
    GeneratorPluginActivator activator = mock(GeneratorPluginActivator.class);
    TriggerInterpreter triggerInterpreter = mock(TriggerInterpreter.class);
    MatcherInterpreter matcher = mock(MatcherInterpreter.class);
    InputReader inputReader = mock(InputReader.class);
    when(triggerInterpreter.getType()).thenReturn("mockplugin");
    when(triggerInterpreter.getMatcher()).thenReturn(matcher);
    when(triggerInterpreter.getInputReader()).thenReturn(inputReader);
    when(inputReader.isValidInput(any())).thenReturn(true);
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(input))))).thenReturn(false);
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("package"), ANY, sameInstance(input))))).thenReturn(true);
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(input))))).thenReturn(true);
    // Simulate variable resolving of any plug-in
    HashMap<String, String> variables = new HashMap<>(3);
    variables.put("rootPackage", "com.devonfw");
    variables.put("component", "comp1");
    variables.put("detail", "");
    when(matcher.resolveVariables(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(input))), argThat(hasItemsInList(// 
    new VariableAssignmentToMatcher(equalTo("regex"), equalTo("rootPackage"), equalTo("1"), equalTo(false)), new VariableAssignmentToMatcher(equalTo("regex"), equalTo("entityName"), equalTo("3"), equalTo(false)))), any())).thenReturn(variables);
    PluginRegistry.registerTriggerInterpreter(triggerInterpreter, activator);
    return input;
}
Also used : TriggerInterpreter(com.devonfw.cobigen.api.extension.TriggerInterpreter) MatcherToMatcher(com.devonfw.cobigen.api.matchers.MatcherToMatcher) InputReader(com.devonfw.cobigen.api.extension.InputReader) HashMap(java.util.HashMap) MatcherInterpreter(com.devonfw.cobigen.api.extension.MatcherInterpreter) VariableAssignmentToMatcher(com.devonfw.cobigen.api.matchers.VariableAssignmentToMatcher) GeneratorPluginActivator(com.devonfw.cobigen.api.extension.GeneratorPluginActivator)

Example 3 with VariableAssignmentToMatcher

use of com.devonfw.cobigen.api.matchers.VariableAssignmentToMatcher in project cobigen by devonfw.

the class ContainerMatcherTest method createTestDataAndConfigureMock.

/**
 * Creates simple to debug test data, which includes on container object and one child of the container object. A
 * {@link TriggerInterpreter TriggerInterpreter} will be mocked with all necessary supplier classes to mock a simple
 * java trigger interpreter. Furthermore, the mocked trigger interpreter will be directly registered in the
 * {@link PluginRegistry}.
 *
 * @param containerChildMatchesTrigger defines whether the child of the container input should match any non-container
 *        matcher
 * @param multipleContainerChildren defines whether the container should contain multiple children
 * @return the container as input for generation interpreter for
 * @author mbrunnli (16.10.2014)
 */
@SuppressWarnings("unchecked")
private Object createTestDataAndConfigureMock(boolean containerChildMatchesTrigger, boolean multipleContainerChildren) {
    // we only need any objects for inputs to have a unique object reference to affect the mocked method
    // calls as intended
    Object container = new Object() {

        @Override
        public String toString() {
            return "container";
        }
    };
    Object firstChildResource = new Object() {

        @Override
        public String toString() {
            return "child";
        }
    };
    // Pre-processing: Mocking
    GeneratorPluginActivator activator = mock(GeneratorPluginActivator.class);
    TriggerInterpreter triggerInterpreter = mock(TriggerInterpreter.class);
    MatcherInterpreter matcher = mock(MatcherInterpreter.class);
    InputReader inputReader = mock(InputReader.class);
    when(triggerInterpreter.getType()).thenReturn("mockplugin");
    when(triggerInterpreter.getMatcher()).thenReturn(matcher);
    when(triggerInterpreter.getInputReader()).thenReturn(inputReader);
    when(inputReader.isValidInput(any())).thenReturn(true);
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(container))))).thenReturn(false);
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("package"), ANY, sameInstance(container))))).thenReturn(true);
    // Simulate container children resolution of any plug-in
    if (multipleContainerChildren) {
        Object secondChildResource = new Object() {

            @Override
            public String toString() {
                return "child2";
            }
        };
        when(inputReader.getInputObjects(any(), any(Charset.class))).thenReturn(Lists.newArrayList(firstChildResource, secondChildResource));
    } else {
        when(inputReader.getInputObjects(any(), any(Charset.class))).thenReturn(Lists.newArrayList(firstChildResource));
    }
    when(matcher.matches(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(firstChildResource))))).thenReturn(containerChildMatchesTrigger);
    // Simulate variable resolving of any plug-in
    when(matcher.resolveVariables(argThat(new MatcherToMatcher(equalTo("fqn"), ANY, sameInstance(firstChildResource))), argThat(hasItemsInList(// 
    new VariableAssignmentToMatcher(equalTo("regex"), equalTo("rootPackage"), equalTo("1"), equalTo(false)), new VariableAssignmentToMatcher(equalTo("regex"), equalTo("entityName"), equalTo("3"), equalTo(false)))), any())).thenReturn(ImmutableMap.<String, String>builder().put("rootPackage", "com.devonfw").put("entityName", "Test").build());
    PluginRegistry.registerTriggerInterpreter(triggerInterpreter, activator);
    return container;
}
Also used : TriggerInterpreter(com.devonfw.cobigen.api.extension.TriggerInterpreter) MatcherToMatcher(com.devonfw.cobigen.api.matchers.MatcherToMatcher) InputReader(com.devonfw.cobigen.api.extension.InputReader) MatcherInterpreter(com.devonfw.cobigen.api.extension.MatcherInterpreter) Charset(java.nio.charset.Charset) VariableAssignmentToMatcher(com.devonfw.cobigen.api.matchers.VariableAssignmentToMatcher) GeneratorPluginActivator(com.devonfw.cobigen.api.extension.GeneratorPluginActivator)

Aggregations

GeneratorPluginActivator (com.devonfw.cobigen.api.extension.GeneratorPluginActivator)3 InputReader (com.devonfw.cobigen.api.extension.InputReader)3 MatcherInterpreter (com.devonfw.cobigen.api.extension.MatcherInterpreter)3 TriggerInterpreter (com.devonfw.cobigen.api.extension.TriggerInterpreter)3 MatcherToMatcher (com.devonfw.cobigen.api.matchers.MatcherToMatcher)3 VariableAssignmentToMatcher (com.devonfw.cobigen.api.matchers.VariableAssignmentToMatcher)3 Charset (java.nio.charset.Charset)2 HashMap (java.util.HashMap)1