/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 * * 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.kie.workbench.common.screens.projecteditor.client.forms.dependencies; import java.util.Arrays; import java.util.HashSet; import org.guvnor.common.services.project.model.Dependencies; import org.guvnor.common.services.project.model.Dependency; import org.guvnor.common.services.project.model.POM; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.kie.workbench.common.services.shared.dependencies.EnhancedDependencies; import org.kie.workbench.common.services.shared.dependencies.NormalEnhancedDependency; import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.uberfire.client.callbacks.Callback; import static org.junit.Assert.*; import static org.mockito.Mockito.*; @RunWith( MockitoJUnitRunner.class ) public class EnhancedDependenciesManagerTest { @Mock private DependencyLoader dependencyLoader; @InjectMocks private EnhancedDependenciesManager enhancedDependenciesManager; @Mock private Callback<EnhancedDependencies> callback; private Dependencies originalSetOfDependencies; private POM pom; @Before public void setUp() throws Exception { originalSetOfDependencies = new Dependencies(); pom = new POM(); pom.setDependencies( originalSetOfDependencies ); enhancedDependenciesManager.init( pom, callback ); } @Test public void testUpload() throws Exception { enhancedDependenciesManager.update(); verify( dependencyLoader ).load(); } @Test public void testAdd() throws Exception { final Dependency dependency = makeDependency( "artifactId", "groupId", "1.0" ); enhancedDependenciesManager.addNew( dependency ); verify( dependencyLoader ).load(); assertEquals( 1, originalSetOfDependencies.size() ); } @Test public void testAddByPOM() throws Exception { final Dependency defaultDependency = makeDependency( "artifactId", "groupId", "1.0" ); final Dependency compileDependency = makeDependency( "artifactId", "groupId", "2.0", "compile" ); final Dependency testDependency = makeDependency( "artifactId", "groupId", "3.0", "test" ); final Dependencies dependencies = new Dependencies( Arrays.asList( defaultDependency, compileDependency, testDependency ) ); final ArgumentCaptor<Dependency> argumentCaptor = ArgumentCaptor.forClass( Dependency.class ); pom.setDependencies( dependencies ); enhancedDependenciesManager.init( pom, callback ); verify( dependencyLoader, times( 2 ) ).addToQueue( argumentCaptor.capture() ); assertEquals( Arrays.asList( defaultDependency, compileDependency ), argumentCaptor.getAllValues() ); } @Test public void testDelete() throws Exception { enhancedDependenciesManager.addNew( makeDependency( "artifactId", "groupId", "1.0" ) ); enhancedDependenciesManager.delete( new NormalEnhancedDependency( makeDependency( "artifactId", "groupId", "1.0" ), new HashSet<String>() ) ); assertTrue( originalSetOfDependencies.isEmpty() ); } private Dependency makeDependency( final String artifactId, final String groupId, final String version ) { final Dependency dependency = new Dependency(); dependency.setArtifactId( artifactId ); dependency.setGroupId( groupId ); dependency.setVersion( version ); return dependency; } private Dependency makeDependency( final String artifactId, final String groupId, final String version, final String scope ) { final Dependency dependency = makeDependency( artifactId, groupId, version ); dependency.setScope( scope ); return dependency; } }