/* * Copyright 2017 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.library.client.widgets; import org.jboss.errai.ioc.client.api.ManagedInstance; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.kie.workbench.common.screens.library.client.util.LibraryPlaces; import org.kie.workbench.common.widgets.client.handlers.NewProjectHandler; import org.kie.workbench.common.widgets.client.handlers.NewResourceHandler; import org.kie.workbench.common.widgets.client.handlers.NewResourcePresenter; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.uberfire.mvp.Command; import java.util.ArrayList; import java.util.List; import static org.mockito.Matchers.any; import static org.mockito.Mockito.*; @RunWith(MockitoJUnitRunner.class) public class NewProjectButtonWidgetTest { @Mock private NewProjectButtonWidget.View view; @Mock private ManagedInstance<NewProjectHandler> newProjectHandlers; @Mock private org.kie.workbench.common.screens.projecteditor.client.handlers.NewProjectHandler newDefaultProjectHandler; @Mock private NewResourcePresenter newResourcePresenter; @Mock private LibraryPlaces libraryPlaces; private NewProjectButtonWidget presenter; @Before public void setup() { doReturn(true).when(newDefaultProjectHandler).canCreate(); presenter = spy(new NewProjectButtonWidget(view, newProjectHandlers, newDefaultProjectHandler, newResourcePresenter, libraryPlaces)); } @Test public void initTest() { NewProjectHandler otherNewProjectHandler1 = mock(NewProjectHandler.class); doReturn(true).when(otherNewProjectHandler1).canCreate(); NewProjectHandler otherNewProjectHandler2 = mock(NewProjectHandler.class); doReturn(false).when(otherNewProjectHandler2).canCreate(); List<NewResourceHandler> handlers = new ArrayList<>(); handlers.add(newDefaultProjectHandler); handlers.add(otherNewProjectHandler1); handlers.add(otherNewProjectHandler2); doReturn(handlers).when(presenter).getNewProjectHandlers(); presenter.init(); verify(view, times(1)).addNewProjectHandler(anyString(), any(Command.class)); verify(view, times(2)).addNewProjectHandler(anyString(), any(NewProjectHandler.class)); verify(view).addNewProjectHandler(anyString(), any(Command.class)); verify(view).addNewProjectHandler(anyString(), eq(newDefaultProjectHandler)); verify(view).addNewProjectHandler(anyString(), eq(otherNewProjectHandler1)); } }