/* * 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.HashSet; import org.guvnor.common.services.project.model.Dependency; import org.guvnor.common.services.project.model.POM; 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 EnhancedDependenciesManagerResetTest { @Mock private DependencyLoader loader; @InjectMocks private EnhancedDependenciesManager manager; @Test public void testReset() throws Exception { final Callback callback = init( makePOM( makeDependency() ) ); final EnhancedDependencies shownEnhancedDependencies = getEnhancedDependencies( callback ); assertEquals( 1, shownEnhancedDependencies.size() ); final Callback callback2 = init( makePOM() ); final EnhancedDependencies shownEnhancedDependencies2 = getEnhancedDependencies( callback2 ); assertEquals( 0, shownEnhancedDependencies2.size() ); } private Callback init( final POM pom ) { final Callback callback = mock( Callback.class ); manager.init( pom, callback ); final EnhancedDependencies enhancedDependencies = new EnhancedDependencies(); for ( Dependency dependency : pom.getDependencies() ) { enhancedDependencies.add( new NormalEnhancedDependency( dependency, new HashSet<String>() ) ); } manager.onEnhancedDependenciesUpdated( enhancedDependencies ); return callback; } private Dependency makeDependency() { final Dependency dependency = new Dependency(); dependency.setScope( "compile" ); return dependency; } private POM makePOM( final Dependency... dependencies ) { final POM pom = new POM(); for ( Dependency dependency : dependencies ) { pom.getDependencies().add( dependency ); } return pom; } private EnhancedDependencies getEnhancedDependencies( final Callback<EnhancedDependencies> callback1 ) { ArgumentCaptor<EnhancedDependencies> dependenciesArgumentCaptor = ArgumentCaptor.forClass( EnhancedDependencies.class ); verify( callback1 ).callback( dependenciesArgumentCaptor.capture() ); return dependenciesArgumentCaptor.getValue(); } }