All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.odpi.openmetadata.accessservices.subjectarea.fvt.RunAllFVT Maven / Gradle / Ivy

There is a newer version: 4.3
Show newest version
/* SPDX-License-Identifier: Apache-2.0 */
/* Copyright Contributors to the ODPi Egeria project. */
package org.odpi.openmetadata.accessservices.subjectarea.fvt;

import org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException;
import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException;
import org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * FVT resource to call subject area term client API FVT resources
 */
public class RunAllFVT
{
    public static void main(String[] args)
    {
        try
        {
            String url = RunAllFVT.getUrl(args);
            String serverName = getServerName(args);
            String userId = getUserId(args);
            performFVT(url, serverName, userId);
            System.out.println("FVT ran successfully");
        } catch (IOException e1)
        {
            System.out.println("Error getting user input");
        } catch (SubjectAreaFVTCheckedException e) {
            System.out.println("ERROR: " + e.getMessage() );
        } catch (UserNotAuthorizedException | InvalidParameterException | PropertyServerException e) {
            System.out.println("ERROR: " + e.getReportedErrorMessage() + " Suggested action: " + e.getReportedUserAction());
        }
    }

    public static void performFVT(String url, String serverName, String userId) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException, SubjectAreaFVTCheckedException {
        int initialGlossaryCount = GlossaryFVT.getGlossaryCount(url, serverName, userId);
        int initialTermCount = TermFVT.getTermCount(url, serverName, userId);
        int initialCategoryCount = CategoryFVT.getCategoryCount(url, serverName, userId);
        int initialSubjectAreaCount = SubjectAreaDefinitionCategoryFVT.getSubjectAreaCount(url, serverName, userId);
        int initialProjectCount = ProjectFVT.getProjectCount(url,serverName,userId);

        GlossaryFVT.runIt(url,serverName,userId);
        TermFVT.runIt(url,serverName,userId);
        CategoryFVT.runIt(url,serverName,userId);
        CategoryHierarchyFVT.runIt(url,serverName,userId);
        RelationshipsFVT.runIt(url,serverName,userId);
        ProjectFVT.runIt(url, serverName, userId);
        SubjectAreaDefinitionCategoryFVT.runIt(url,serverName,userId);
        GraphFVT.runIt(url,serverName,userId);
        EffectiveDatesFVT.runIt(url,serverName,userId);
        CheckSerializationFVT.runIt(url, serverName, userId);

        int finalGlossaryCount = GlossaryFVT.getGlossaryCount(url,serverName,userId);
        int finalTermCount = TermFVT.getTermCount(url,serverName,userId);
        int finalCategoryCount = CategoryFVT.getCategoryCount(url,serverName,userId);
        int finalSubjectAreaCount = SubjectAreaDefinitionCategoryFVT.getSubjectAreaCount(url,serverName,userId);
        int finalProjectCount = ProjectFVT.getProjectCount(url,serverName,userId);

        if (initialCategoryCount != finalCategoryCount) {
            throw new SubjectAreaFVTCheckedException("ERROR: Categories count incorrect; expected " +initialCategoryCount + " , got " + finalCategoryCount);
        }
        if (initialTermCount != finalTermCount) {
            throw new SubjectAreaFVTCheckedException("ERROR: Terms count incorrect; expected " +initialTermCount + " , got " + finalTermCount);
        }
        if (initialGlossaryCount != finalGlossaryCount) {
            throw new SubjectAreaFVTCheckedException("ERROR: Glossaries count incorrect; expected " +initialGlossaryCount + " , got " + finalGlossaryCount);
        }
        if (initialSubjectAreaCount != finalSubjectAreaCount) {
            throw new SubjectAreaFVTCheckedException("ERROR: SubjectArea count incorrect; expected " +initialSubjectAreaCount + " , got " + finalSubjectAreaCount);
        }
        if (initialProjectCount != finalProjectCount) {
            throw new SubjectAreaFVTCheckedException("ERROR: Projects count incorrect; expected " +initialProjectCount + " , got " + finalProjectCount);
        }
    }

    public static String getServerName(String[] args) throws IOException
    {
        String name = null;
        if (args.length > 1)
        {
            name = args[1];
        } else
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Enter a OMAG Server Name. Press enter to get the default (" + FVTConstants.SERVER_NAME1 + ")) :");
            name = br.readLine();
            if (name.equals(""))
            {
                name = FVTConstants.SERVER_NAME1;
            }

        }
        return name;
    }
    /**
     * This method gets the userId that the sample will use to issue calls to the server.
     * 

* If arguments are supplied then the third parameter is used as a userId. *

* If no userId is supplied then prompt the user to enter a valid userId, enter means to use the default userId. * * @param args arguments supplied * @return the url to use on the calls to the server * @throws IOException IO exception occurred while getting input from the user. */ public static String getUserId(String[] args) throws IOException { String userId = null; if (args.length > 2) { userId = args[2]; } else { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter a userId. Press enter to get the default (" + FVTConstants.USERID + ")) :"); userId = br.readLine(); if (userId.equals("")) { userId = FVTConstants.USERID; } } return userId; } /** * This method gets the url that the tests will use to issue calls to the server. *

* If arguments are supplied then the first parameter is used as a url. *

* If no url is supplied then prompt the user to enter a valid url, enter means to use the default url. * * @param args arguments supplied * @return the url to use on the calls to the server * @throws IOException IO exception occured while getting input from the user. */ public static String getUrl(String[] args) throws IOException { String url = null; if (args.length > 0) { url = args[0]; } else { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter a URL. Press enter to get the default (" + FVTConstants.DEFAULT_URL + ".)) :"); url = br.readLine(); if (url.equals("")) { url = FVTConstants.DEFAULT_URL; } } return url; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy