Package org.drools.guvnor.server.verification

Source Code of org.drools.guvnor.server.verification.AssetVerifierTest

/*
* Copyright 2010 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.server.verification;

import org.drools.guvnor.client.common.AssetFormats;
import org.drools.guvnor.client.rpc.AnalysisReport;
import org.drools.guvnor.client.widgets.toolbar.DefaultActionToolbarButtonsConfigurationProvider;
import org.drools.guvnor.server.MockAssetItemIterator;
import org.drools.repository.AssetItem;
import org.drools.repository.AssetItemIterator;
import org.drools.repository.ModuleItem;
import org.drools.verifier.Verifier;
import org.drools.verifier.data.VerifierData;
import org.drools.verifier.data.VerifierReport;
import org.drools.verifier.report.components.Severity;
import org.drools.verifier.report.components.VerifierMessageBase;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Matchers;

import java.util.Collections;
import java.util.HashMap;

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

public class AssetVerifierTest {

    private ModuleItem packageItem;

    @Before
    public void setUp() {
        packageItem = createPackage();
        setUpAssetItemIterator();
    }

    private Verifier createVerifier() {
        Verifier verifier = mock(Verifier.class);
        VerifierReport verifierReport = createVerifierReport();
        when(verifier.getResult()).thenReturn(verifierReport);
        return verifier;
    }

    private VerifierReport createVerifierReport() {
        VerifierReport report = mock(VerifierReport.class);
        when(report.getBySeverity(Matchers.<Severity>any())).thenReturn(Collections.<VerifierMessageBase>emptyList());
        VerifierData verifierData = mock(VerifierData.class);
        when(report.getVerifierData()).thenReturn(verifierData);
        return report;
    }

    private void setUpAssetItemIterator() {
        AssetItemIterator assetItemIterator = mock(AssetItemIterator.class);
        when(assetItemIterator.hasNext()).thenReturn(false);
        when(packageItem.listAssetsByFormat(Matchers.<String>anyVararg())).thenReturn(assetItemIterator);
    }

    @Test
    public void testVerifySingleAsset() throws Exception {
        for (String format : DefaultActionToolbarButtonsConfigurationProvider.VERIFY_FORMATS) {

            if (format.equals(AssetFormats.DECISION_SPREADSHEET_XLS)) {
                // Binary asset, can not be tested with mocks.
                continue;
            }

            AssetItem originalAssetItem = getAssetItem(format);
            setUpAssetIterator(originalAssetItem, format);

            AssetItem assetItemUnderVerification = getAssetItem(format);


            AssetVerifier verifierRunner = new AssetVerifier(createVerifier(), assetItemUnderVerification);

            AnalysisReport report = verifierRunner.verify();

            verify(originalAssetItem, never()).getContent();
            verify(assetItemUnderVerification).getContent();

            assertNotNull(report);
        }
    }

    private void setUpAssetIterator(AssetItem originalAssetItem, String format) {
        MockAssetItemIterator itemIterator = new MockAssetItemIterator();
        itemIterator.setAssets(originalAssetItem);
        when(packageItem.listAssetsByFormat(format)).thenReturn(itemIterator);
    }

    private AssetItem getAssetItem(String format) {
        AssetItem assetItem = mock(AssetItem.class);
        when(assetItem.getUUID()).thenReturn("mockUUID");
        when(assetItem.getModule()).thenReturn(packageItem);
        when(assetItem.getFormat()).thenReturn(format);
        when(assetItem.getContent()).thenReturn("");
        return assetItem;
    }

    public ModuleItem createPackage() {
        ModuleItem packageItem = mock(ModuleItem.class);
        when(packageItem.getName()).thenReturn("mockPackage");
        when(packageItem.getCategoryRules()).thenReturn(new HashMap<String, String>());
        return packageItem;
    }
}
TOP

Related Classes of org.drools.guvnor.server.verification.AssetVerifierTest

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.