Package org.drools.guvnor.server

Source Code of org.drools.guvnor.server.VerificationServiceImplementationTest

/*
* 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;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.util.HashSet;

import org.drools.guvnor.client.common.AssetFormats;
import org.drools.guvnor.client.rpc.AnalysisReport;
import org.drools.guvnor.client.rpc.Asset;
import org.drools.guvnor.client.rpc.MetaData;
import org.drools.guvnor.client.rpc.RuleContentText;
import org.drools.guvnor.client.rpc.VerificationService;
import org.drools.repository.AssetItem;
import org.drools.repository.AssetItemIterator;
import org.drools.repository.ModuleItem;
import org.drools.repository.RulesRepository;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Matchers;

public class VerificationServiceImplementationTest {

    // TODO this entire test must be rewritten to extend GuvnorIntegrationTest and test it for real

    private VerificationService verificationService;
    private ModuleItem packageItem;
    private RulesRepository rulesRepository;

    @Before
    public void setUp() {
        final RepositoryAssetService repositoryAssetService = mock(RepositoryAssetService.class);
        VerificationServiceImplementation verificationServiceImplementation = new VerificationServiceImplementation() ;
        verificationServiceImplementation.repositoryAssetService = repositoryAssetService;

        rulesRepository = mock(RulesRepository.class);
        repositoryAssetService.rulesRepository = rulesRepository;
        packageItem = createPackage();

        AssetItemIterator assetItemIterator = mock(AssetItemIterator.class);
        when(assetItemIterator.hasNext()).thenReturn(false);
        when(packageItem.listAssetsByFormat(Matchers.<String>anyVararg())).thenReturn(assetItemIterator);
        when(rulesRepository.loadModule("mockPackage")).thenReturn(packageItem);

        verificationService = verificationServiceImplementation;
    }

    @Test
    @Ignore("See JIRA https://issues.jboss.org/browse/GUVNOR-1812")
    public void testVerifyAsset() throws Exception {


        MockAssetItemIterator itemIterator = new MockAssetItemIterator();
        AssetItem assetItem = getAssetItem("");

        when(rulesRepository.loadAssetByUUID(Matchers.<String>any())).thenReturn(assetItem);

        itemIterator.setAssets(assetItem);
        when(packageItem.listAssetsByFormat(AssetFormats.DRL)).thenReturn(itemIterator);

        String drl = "";
        drl += "rule Test\n";
        drl += "when\n";
        drl += "P(a==true)\n";
        drl += "then\n";
        drl += "end\n";

        Asset ruleAsset = getAsset(drl);
        AnalysisReport report = verificationService.verifyAsset(
                ruleAsset,
                new HashSet<String>());

        assertNotNull(report);
        assertEquals(0,
                report.errors.length);
        assertEquals(0,
                report.warnings.length);
        assertEquals(0,
                report.notes.length);

    }

    public Asset getAsset(String content) {
        Asset ruleAsset = new Asset();

        ruleAsset.setUuid( "mockUUID" );
        ruleAsset.metaData = getMetaData();
        ruleAsset.setFormat( AssetFormats.DRL);
        ruleAsset.content = getRuleContentText(content);
        return ruleAsset;
    }

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

    private RuleContentText getRuleContentText(String content) {
        RuleContentText ruleContentText = new RuleContentText();
        ruleContentText.content = content;
        return ruleContentText;
    }

    public MetaData getMetaData() {
        MetaData metaData = new MetaData();
        metaData.moduleName = "mockPackage";
        return metaData;
    }

    public ModuleItem createPackage() {
        ModuleItem packageItem = mock(ModuleItem.class);
        when(packageItem.getName()).thenReturn("mockPackage");
        return packageItem;
    }
}
TOP

Related Classes of org.drools.guvnor.server.VerificationServiceImplementationTest

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.