Package org.drools.guvnor.client.explorer.navigation.browse

Source Code of org.drools.guvnor.client.explorer.navigation.browse.BrowseTreeTest

/*
* Copyright 2011 JBoss Inc
*
*   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.drools.guvnor.client.explorer.navigation.browse;

import com.google.gwt.user.client.ui.IsTreeItem;
import org.drools.guvnor.client.configurations.Capability;
import org.drools.guvnor.client.explorer.ExplorerNodeConfig;
import org.drools.guvnor.client.explorer.FindPlace;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;

public class BrowseTreeTest extends BrowseTreeTestBase {

    @Override
    @Before
    public void setUp() throws Exception {
        setUpCapabilities();
        super.setUp();
    }

    @Test
    public void testPresenterSet() throws Exception {
        verify( view ).setPresenter( presenter );
    }

    @Test
    public void testFindSelection() throws Exception {
        presenter.onTreeItemSelection( find, "find" );

        verify( placeController ).goTo( any( FindPlace.class ) );
    }

    @Test
    public void testInboxIncomingSelection() throws Exception {
        presenter.onTreeItemSelection( incomingInboxTreeItem, "title1" );

        ArgumentCaptor<InboxPlace> inboxPlaceArgumentCaptor = ArgumentCaptor.forClass( InboxPlace.class );
        verify( placeController ).goTo( inboxPlaceArgumentCaptor.capture() );
        assertEquals( ExplorerNodeConfig.INCOMING_ID, inboxPlaceArgumentCaptor.getValue().getInboxName() );
    }

    @Test
    public void testInboxRecentEditedSelection() throws Exception {
        presenter.onTreeItemSelection( inboxRecentEdited, "title2" );

        ArgumentCaptor<InboxPlace> inboxPlaceArgumentCaptor = ArgumentCaptor.forClass( InboxPlace.class );
        verify( placeController ).goTo( inboxPlaceArgumentCaptor.capture() );
        assertEquals( ExplorerNodeConfig.RECENT_EDITED_ID, inboxPlaceArgumentCaptor.getValue().getInboxName() );
    }

    @Test
    public void testInboxRecentViewedSelection() throws Exception {
        presenter.onTreeItemSelection( inboxRecentViewed, "title3" );

        ArgumentCaptor<InboxPlace> inboxPlaceArgumentCaptor = ArgumentCaptor.forClass( InboxPlace.class );
        verify( placeController ).goTo( inboxPlaceArgumentCaptor.capture() );
        assertEquals( ExplorerNodeConfig.RECENT_VIEWED_ID, inboxPlaceArgumentCaptor.getValue().getInboxName() );
    }

    @Test
    public void testOpenStateSelection() throws Exception {
        setUpStates( "title1" );
        categoryServiceAsyncMock.addCategorySelection( "/" );
        setUpCapabilities( Capability.SHOW_KNOWLEDGE_BASES_VIEW );

        IsTreeItem state = mock( IsTreeItem.class );
        when( view.addStateItem( "title1" ) ).thenReturn( state );

        setUpPresenter();

        presenter.onTreeItemOpen( rootTreeItem );
        presenter.onTreeItemSelection( state, "title1" );

        ArgumentCaptor<StatePlace> statePlaceArgumentCaptor = ArgumentCaptor.forClass( StatePlace.class );
        verify( placeController ).goTo( statePlaceArgumentCaptor.capture() );

        assertEquals( "title1", statePlaceArgumentCaptor.getValue().getStateName() );
    }

    @Test
    public void testLoadRoot() throws Exception {
        verify( view ).addRootTreeItem();
        verify( view ).addFind();
        verify( view, never() ).addRootStateTreeItem();
        verify( view ).addRootCategoryTreeItem();
    }

    @Test
    public void testShowRulesMenuHasCapability() throws Exception {

        setUpCapabilities( Capability.SHOW_CREATE_NEW_ASSET );

        presenter = new BrowseTree( clientFactory );

        verify( view ).showMenu();
    }

    @Test
    public void testShowRulesMenuNoCapability() throws Exception {
        verify( view, never() ).showMenu();
    }

    @Test
    public void testCategorySelection() throws Exception {
        categoryServiceAsyncMock.addCategorySelection( "/", "categoryName1", "categoryName2", "categoryName3" );

        IsTreeItem category1 = mock( IsTreeItem.class );
        when( view.addTreeItem( rootCategoryTreeItem, "categoryName1" ) ).thenReturn( category1 );

        presenter.onTreeItemOpen( rootTreeItem );
        presenter.onTreeItemOpen( rootCategoryTreeItem );
        presenter.onTreeItemSelection( category1, "categoryName1" );

        ArgumentCaptor<CategoryPlace> categoryPlaceArgumentCaptor = ArgumentCaptor.forClass( CategoryPlace.class );
        verify( placeController ).goTo( categoryPlaceArgumentCaptor.capture() );

        assertEquals( "/categoryName1", categoryPlaceArgumentCaptor.getValue().getCategoryPath() );
    }

    @Test
    public void testLoadFirstLevelCategories() throws Exception {
        categoryServiceAsyncMock.addCategorySelection( "/", "category1", "category2", "category3" );

        presenter.onTreeItemOpen( rootTreeItem );
        presenter.onTreeItemOpen( rootCategoryTreeItem );

        verify( view ).removeCategories( rootCategoryTreeItem );
        verifyAddedTreeItemsToCategory( rootCategoryTreeItem, "category1", "category2", "category3" );
    }

    @Test
    public void testLoadThirdLevelCategory() throws Exception {
        categoryServiceAsyncMock.addCategorySelection( "/", "one", "two", "three" );
        categoryServiceAsyncMock.addCategorySelection( "/one", "t1", "t2" );
        categoryServiceAsyncMock.addCategorySelection( "/one/t2", "a", "b", "c", "d", "e", "f" );

        IsTreeItem oneTreeItem = mock( IsTreeItem.class );
        when( view.addTreeItem( rootCategoryTreeItem, "one" ) ).thenReturn( oneTreeItem );
        IsTreeItem t2TreeItem = mock( IsTreeItem.class );
        when( view.addTreeItem( oneTreeItem, "t2" ) ).thenReturn( t2TreeItem );

        setUpChildren( rootCategoryTreeItem, oneTreeItem );
        setUpChildren( oneTreeItem, t2TreeItem );
        setUpChildren( t2TreeItem );

        presenter.onTreeItemOpen( rootTreeItem );
        presenter.onTreeItemOpen( rootCategoryTreeItem );
        presenter.onTreeItemOpen( oneTreeItem );
        presenter.onTreeItemOpen( t2TreeItem );

        verify( view ).removeCategories( t2TreeItem );
        verifyAddedTreeItemsToCategory( t2TreeItem, "a", "b", "c", "d", "e", "f" );
    }
}
TOP

Related Classes of org.drools.guvnor.client.explorer.navigation.browse.BrowseTreeTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.