@Before public void onSetup() throws Exception { toolchainManager = new DefaultToolchainManager(); MockitoAnnotations.initMocks(this); toolchainManager.factories = new HashMap<>(); toolchainManager.factories.put("basic", toolchainFactory_basicType); toolchainManager.factories.put("rare", toolchainFactory_rareType); }
@Test public void testNoModels() { MavenSession session = mock(MavenSession.class); MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest(); when(session.getRequest()).thenReturn(executionRequest); List<Toolchain> toolchains = toolchainManager.getToolchains(session, "unknown", null); assertEquals(0, toolchains.size()); }
@Test public void testModelAndFactory() { MavenSession session = mock(MavenSession.class); MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest(); Map<String, List<ToolchainModel>> toolchainModels = new HashMap<>(); toolchainModels.put("basic", Arrays.asList(new ToolchainModel(), new ToolchainModel())); toolchainModels.put("rare", Collections.singletonList(new ToolchainModel())); executionRequest.setToolchains(toolchainModels); when(session.getRequest()).thenReturn(executionRequest); List<Toolchain> toolchains = toolchainManager.getToolchains(session, "rare", null); assertEquals(1, toolchains.size()); }
@Test public void testModelNoFactory() { MavenSession session = mock(MavenSession.class); MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest(); Map<String, List<ToolchainModel>> toolchainModels = new HashMap<>(); toolchainModels.put("unknown", Collections.singletonList(new ToolchainModel())); executionRequest.setToolchains(toolchainModels); when(session.getRequest()).thenReturn(executionRequest); List<Toolchain> toolchains = toolchainManager.getToolchains(session, "unknown", null); assertEquals(0, toolchains.size()); verify(logger) .error( "Missing toolchain factory for type: unknown. Possibly caused by misconfigured project."); }
@Test public void testRequirements() throws Exception { MavenSession session = mock(MavenSession.class); MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest(); Map<String, List<ToolchainModel>> toolchainModels = new HashMap<>(); toolchainModels.put("basic", Arrays.asList(new ToolchainModel(), new ToolchainModel())); toolchainModels.put("rare", Collections.singletonList(new ToolchainModel())); executionRequest.setToolchains(toolchainModels); when(session.getRequest()).thenReturn(executionRequest); ToolchainPrivate basicPrivate = mock(ToolchainPrivate.class); when(basicPrivate.matchesRequirements(anyMap())).thenReturn(false).thenReturn(true); when(toolchainFactory_basicType.createToolchain(isA(ToolchainModel.class))) .thenReturn(basicPrivate); List<Toolchain> toolchains = toolchainManager.getToolchains(session, "basic", Collections.singletonMap("key", "value")); assertEquals(1, toolchains.size()); }