First Commit

This commit is contained in:
Krishna 2020-09-23 11:37:27 +05:30
commit ce1fb0b1fe
41 changed files with 3767 additions and 0 deletions

33
.gitignore vendored Normal file
View File

@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

117
.mvn/wrapper/MavenWrapperDownloader.java vendored Normal file
View File

@ -0,0 +1,117 @@
/*
* Copyright 2007-present the original author or authors.
*
* 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
*
* https://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.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.6";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if(mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if(mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if(!outputFile.getParentFile().exists()) {
if(!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}

BIN
.mvn/wrapper/maven-wrapper.jar vendored Normal file

Binary file not shown.

2
.mvn/wrapper/maven-wrapper.properties vendored Normal file
View File

@ -0,0 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar

310
mvnw vendored Normal file
View File

@ -0,0 +1,310 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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
#
# https://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.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

182
mvnw.cmd vendored Normal file
View File

@ -0,0 +1,182 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%

209
pom.xml Normal file
View File

@ -0,0 +1,209 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.machint.automation</groupId>
<artifactId>mautomation</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mautomation</name>
<description>Automation Testing Framework</description>
<properties>
<java.version>1.8</java.version>
<testcontainers.version>1.14.3</testcontainers.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>openxml4j</artifactId>
<version>1.0-beta</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-picocontainer</artifactId>
<version>1.2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-testng -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-testng</artifactId>
<version>1.2.5</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>net.masterthought</groupId>
<artifactId>cucumber-reporting</artifactId>
<version>5.0.2</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>gherkin</artifactId>
<version>2.12.2</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.1.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.relevantcodes/extentreports -->
<dependency>
<groupId>com.relevantcodes</groupId>
<artifactId>extentreports</artifactId>
<version>2.41.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.vimalselvam/cucumber-extentsreport -->
<dependency>
<groupId>com.vimalselvam</groupId>
<artifactId>cucumber-extentsreport</artifactId>
<version>3.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports-cucumber4-adapter -->
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports-cucumber4-adapter</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers-bom</artifactId>
<version>${testcontainers.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>${artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin><!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId>
<configuration> <suiteXmlFiles> <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>>
</suiteXmlFiles> </configuration> </plugin> -->
</plugins>
</build>
</project>

View File

@ -0,0 +1,64 @@
package com.machint.automation;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.collections.Lists;
import com.machint.automation.model.FormObject;
@RestController
public class AutomationController {
//local
//private static final String FILE_LOCATION = "D:\\M_Automation\\MAF\\TestNGXML\\";
//private static final String REPORT_FILE_LOCATION = "D:\\M_Automation\\MAF\\TestReport\\";
//Server
private static final String FILE_LOCATION = "MAF/TestNGXML/";
private static final String REPORT_FILE_LOCATION = "MAF/TestReport/";
public static FormObject formObject;
@PostMapping(path="/run_test", consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE})
public String runTest(FormObject formData) {
formObject = formData;
System.out.println(formData);
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
List<String> suites = Lists.newArrayList();
suites.add(FILE_LOCATION+formData.getTestCase());//path to xml..
//suites.add("c:/tests/testng2.xml");
testng.setTestSuites(suites);
testng.addListener(tla);
testng.run();
return "Test Ran Successfully";
}
//
@GetMapping(value = "/get_xml_report")
public ResponseEntity<InputStreamResource> getXmlReport() throws IOException {
byte[] filedata = Files.readAllBytes(Paths.get(REPORT_FILE_LOCATION+"Test-Automaton-Report.html"));
ByteArrayInputStream in = new ByteArrayInputStream(filedata);
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Disposition", "attachment; filename=report.html");
return ResponseEntity
.ok()
.headers(headers)
.body(new InputStreamResource(in));
}
}

View File

@ -0,0 +1,16 @@
@Pega_ERF
Feature: ERF
Scenario: ERF Process
Given User navigate to Pega Portal
When User enter project manager username and password
And Click on login button
And User verify the project manager home page title
And Click on Employee Requisition Form ERF
And User entered ERF code details
And User entered the Job Specifications details
And User entered the Competencies Required details
And User clicks on project manager submit button
Then Project manager page display the message
Then In project manager page click on logoff

View File

@ -0,0 +1,33 @@
Feature: Login
@HRlogin
Scenario: I want to enter username and password
Given user navigate to Machint Walk-In Drive Portal
When user verify the homepage title
Then user entered the username and password in walk-in portal
And user click on login button
Then login successfully after display the search from
And user click on Profiles
And user select from and to dates
And user click on submit button
Then display the particular from and to date data
And search the profile id
And check the that particular profile id
And click on shortlist button
Then display the alert message
And user click on search icon
And user verify search page url
And user entered the Search Form details
And user click on search button
And search the profile id in search from
And check the that particular profile id in search from
And user click on Shortlist
Then display the alert messgae in search form
And user click on download selected
And user click on send mail
And user click on logout icon

View File

@ -0,0 +1,28 @@
@Insurance
Feature: Insurance
Background: I want to enter username and password
Given user navigate to parthenon page
When user validates homepage title
Then user entered the username and password
And user click on signin button
Then parthenon page should be displayed
Scenario: Insurance process
Given user click on actions
When user validates action page
And user click on Case management
And user create case in case management
And after select the product catalogue in SH - Advanced table click on select button
And click on continue button
And click on add customer button
Then in SH-Advanced Personal Details page displayed
And user enter personal details
And click on add new row in family details
And user enter family details
And click on next button
Then KYC documents page displayed

View File

@ -0,0 +1,13 @@
Feature: Registration Form
@registration
Scenario: I want to enter personal information
Given user navigate to registration form
When user validates the homepage
Then user entered the Personal Information details
And user navigate to Education Information and entered the Education Information details
And user navigate to Technical Knowledge and entered the Technical Knowledge details
Then user navigate the Other Info and entered the Other Info details
And user click on choose file and upload the resume
And click on Submit button
Then your registration process completed

View File

@ -0,0 +1,13 @@
package com.machint.automation;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MautomationApplication {
public static void main(String[] args) {
SpringApplication.run(MautomationApplication.class, args);
}
}

View File

@ -0,0 +1,58 @@
package com.machint.automation.PageObject;
import org.openqa.selenium.By;
import com.machint.automation.Utils.ActionClass;
public class ERF_PageObject extends ActionClass
{
//Login Deatails
public static String Username = "UserIdentifier";
public static String Password = "Password";
public static String Login = "//button[@id='sub']";
//After login
public static String ERF = "//span[@class='menu-item-title' and text()='Employee Requisition Form']";
public static String Position = "//input[@id='Position']";
public static String No_of_Positions = "NoOfPositions";
public static String Client_Project = "Client";
public static String Project_ID = "ProjectID";
public static String Department = "Department";
public static String Location = "Location";
public static String External_Hiring = "ExternalHiring";
public static String Reason_for_Request = "ReasonForHiring";
public static String Salary_Range = "SalaryRange";
public static String Reporting = "Reporting";
public static String Target_Date_to_Fill = "inactvIcon";
//Please tick () To be filled by indentor mandatorily
public static String Laptop = "//label[text()='Laptop']";
public static String Bag = "//label[text()='Bag']";
public static String HRIS = "//label[@class='rb_ rb_standard radioLabel' and text()='Yes']";
//Job Specifications
public static String Job_Responsibilities = "Responsibilities";
public static String Special_Accountabilities = "$PpyWorkPage$pAccountabilities";
public static String Additional_Inputs_to_Roles = "RoleAuthority";
//Competencies Required
public static String IFrame = "//div[@id='workarea']//div[@id='moduleGroupDiv']//div[@class='iframe-wrapper yui-module' and @style='display: block;']//div[@class='bd dynamicContainer']/iframe";
public static String Practice = "Practice";
public static String Domain = "$PpyWorkPage$pDomain";
public static String Is_Certification_Required = "IsCertificationRequired";
public static String Certifications = "//select[@name='$PpyWorkPage$pCertification']";
public static String Technical_Competency = "//span[@id='CTRL_TA']/textarea[@id='TechnicalCompetency']";
public static String Behavioural_Competency = "//textarea[@id='BehaviorCompetency']";
public static String Qualification = "//select[@id='Qualification']";
public static String Overall_Experience_In_Years = "//select[@name='$PpyWorkPage$pOverallExpYears']";
public static String Relevant_Experience_In_Years = "//select[@id='RelevantExpYears']";
public static String Submit = "//button[@class='Strong pzhc pzbutton' and text()='Submit']";
By logoff = By.xpath("//a[@onclick='pd(event);']//span[@class='menu-item-title-wrap']/span[text()='Log off']");
}

View File

@ -0,0 +1,41 @@
package com.machint.automation.PageObject;
import com.machint.automation.Utils.ActionClass;
public class HR_login_PageObject extends ActionClass
{
//login
public static String Employee_Email = "empEmailId";
public static String Password = "password";
public static String Login = "//button[@class='btn btn-primary']";
//After login page click on Profiles
public static String Profiles = "//a[@class='nav-link' and @title='Profiles']//span";
public static String From = "//input[@id='fromDate']";
public static String To = "//input[@id='toDate']";
public static String Submit = "//button[@class='btn btn-primary']";
public static String Search = "//input[@type='search']";
public static String Check = "input[onclick='unChech()']";
public static String Shortlist = "//input[@onclick='shortlistCandidate()']";
//Search Form List
public static String Search_Icon = "//*[@class='nav-link' and @title='Search']";
public static String Hiring_Plan = "//select[@name='hiringPaln' and @class='form-control']";
public static String Candidate_Shortlisted = "//select[@name='shortlist' and @class='form-control']";
public static String Highest_Qualification = "highestQualification";
public static String Specialization = "Specialization";
public static String Percentage = "percentage";
public static String Year_Of_Passing = "yop";
public static String Knowledge_In_JAVA = "java";
public static String Knowledge_In_PEGA = "pega";
public static String Knowledge_In_APPIAN = "//select[@id='appain' and @class='form-control']";
public static String Knowledge_In_RPA = "rpa";
public static String Knowledge_In_PYTHON = "python";
public static String Knowledge_In_DATABASE = "//select[@id='data' and @class='form-control']";
public static String Search_btn = "//button[@class='btn btn-primary' and text()='Search']";
// public static String Download_btn = By.xpath("//button[@class='btn btn-success']");
public static String Check_SearchFrom = "//input[@type='checkbox' and @class='checkBoxClass']";
public static String DownloadSelected = "//input[@onclick='downloadSelected(event)']";
public static String Send_Mail = "//a[@class='nav-link' and @title='Send Mail']/span";
public static String Logout = "//a[@class='nav-link' and @title='Logout']/span";
}

View File

@ -0,0 +1,52 @@
package com.machint.automation.PageObject;
import com.machint.automation.Utils.ActionClass;
public class Insurance_PageObject extends ActionClass
{
//Login Details
public static String Username = "un";
public static String Password = "pw";
public static String Signin = "//input[@onClick='return login_jsp.saveRemember && login_jsp.saveRemember() || true;']";
// After Login
// By iframe = By.xpath("//div[contains(@class,'CardLayout---margin_below_standard')]//div[contains(@class,'CertifiedSAILExtension---wrapping_div')]/iframe");
public static String Actions = "//div[@class='SiteMenuTab---nav_label' and text()='Actions']";
public static String Case_management = "//p[contains(@class,'ParagraphText---default_direction')]/span/span/strong[text()='Case Management']";
public static String Line_of_business = "(//div[contains(@class,'DropdownWidget---dropdown_value')])[1]";
public static String Product_category = "(//div[contains(@class,'DropdownWidget---dropdown_value')])[2]";
public static String Product = "(//div[contains(@class,'DropdownWidget---dropdown_value')])[3]";
public static String Select = "(//div[contains(@class,'ColumnLayout---width_auto')])[6]//div[@class='BoxLayout---box_body']//div[contains(@class,'ButtonLayout2---center')]//button";
// public static String Continue = "//button[contains(@class,'Button---primary appian-context-first-in-list appian-context-last-in-list')]/parent::*";
public static String Continue = "//div/button[contains(@class,'Button---primary appian-context-first-in-list appian-context-last-in-list')]";
public static String Add_customer = "//div[contains(@class,'FieldLayout---inAccentBackground')]//strong[@class='StrongText---richtext_strong' and text()='Add Customer']";
//Personal Details
public static String Title = "(//div[@class='DropdownWidget---dropdown_value DropdownWidget---placeholder'])[1]";
public static String First_name = "(//input[@class='TextInput---text TextInput---align_start'])[1]";
public static String Middle_name = "(//input[@class='TextInput---text TextInput---align_start'])[3]";
public static String Last_name = "(//input[@class='TextInput---text TextInput---align_start'])[5]";
public static String Customer_type = "(//div[contains(@class,'DropdownWidget---dropdown_value')])[2]";
public static String Mobile_number = "(//input[@class='TextInput---text TextInput---align_start'])[2]";
public static String Email = "(//input[@class='TextInput---text TextInput---align_start'])[4]";
public static String Date_of_birth = "//input[@class='DatePickerWidget---text DatePickerWidget---align_start DatePickerWidget---width_narrow']";
public static String Gender = "//div[@class='RadioSelect---choice_pair']/label[text()='Female']";
public static String Un_married = "//div[@class='RadioSelect---choice_pair']/label[text()='Un Married']";
//Family Details
public static String Add_new_row = "//a[@class='GridFooter---add_grid_row_link elements---global_a']";
public static String FamilyDetails_title = "(//div[contains(@class,'DropdownWidget---dropdown_value DropdownWidget---inEditableGridLayout')])[1]";
public static String FamilyDetails_Relation_Type = "(//div[contains(@class,'DropdownWidget---dropdown_value DropdownWidget---inEditableGridLayout')])[2]";
public static String FamilyDetails_first_name = "(//input[@class='TextInput---text TextInput---align_start TextInput---inEditableGridLayout'])[1]";
public static String FamilyDetails_last_name = "(//input[@class='TextInput---text TextInput---align_start TextInput---inEditableGridLayout'])[2]";
public static String FamilyDetails_middle_name = "(//input[@class='TextInput---text TextInput---align_start TextInput---inEditableGridLayout'])[3]";
public static String FamilyDetails_gender = "(//div[contains(@class,'DropdownWidget---dropdown_value DropdownWidget---inEditableGridLayout')])[3]";
public static String FamilyDeatils_date_of_birth = "//input[@class='DatePickerWidget---text DatePickerWidget---align_start DatePickerWidget---inEditableGridLayout']";
public static String FamilyDetails_mobile_number = "(//input[@class='TextInput---text TextInput---align_start TextInput---inEditableGridLayout'])[4]";
public static String Next = "(//div[contains(@class,'ColumnArrayLayout---standard_spacing')])[2]//button[contains(@class,'Button---btn Button---default_direction Button---primary appian-context')]";
}

View File

@ -0,0 +1,42 @@
package com.machint.automation.PageObject;
import com.machint.automation.Utils.ActionClass;
public class RegistrationFrom_PageObject extends ActionClass
{
//Personal Information details
public static String First_Name = "//input[@id='firstName']";
public static String Last_Name = "lastName";
public static String Contact_Number = "contactNo";
public static String Alternate_Contact_Number = "alernateContactNo";
public static String Email = "email";
public static String City = "city";
public static String Location = "Currentlocation";
public static String Permanent_Location = "Permanentlocation";
public static String Address = "//textarea[@name='address' and @class='form-control']";
//Education Information details
public static String Education_Information = "//div/h4[text()='Education Information']";
public static String Highest_Qualification = "//select[@id='qualification' and @class='form-group']";
public static String Specialization = "specialization";
public static String Percentage = "percentage";
public static String Year_Of_Passing = "yearOfPassing";
//Technical Knowledge
public static String Technical_Knowledge ="//div/h4[text()='Technical Knowledge']";
public static String Knowledge_In_JAVA = "//select[@name='java']";
public static String Knowledge_In_PEGA = "//select[@name='pega']";
public static String Knowledge_In_APPIAN = "//select[@name='appian']";
public static String Knowledge_In_RPA = "//select[@name='RPA']";
public static String Knowledge_In_PYTHON = "//select[@name='python']";
public static String Knowledge_In_DATABASE = "//select[@name='dataBase']";
//Other Info
public static String Other_Info = "//div/h4[text()='Other Info']";
public static String Source = "campaignName";
public static String Employee_referral = "//input[@name='empRef']";
public static String Message = "message";
public static String Position = "isAttended6months";
public static String Resume = "//input[@id='file']";
public static String submit = "//button[text()='Submit']";
}

View File

@ -0,0 +1,18 @@
package com.machint.automation.Runner;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features="MAF/Feature/ERF.feature",
glue={"com.machint.automation.StepDefinition"},
monochrome = true,
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/AautomationExtent-ERF-reports/report.html"},
tags= {"@Pega_ERF"}
)
public class ERF_runner
{
}

View File

@ -0,0 +1,19 @@
package com.machint.automation.Runner;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features="MAF/Feature/ERF.feature",
glue={"com.machint.automation.StepDefinition"},
monochrome = true,
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/AautomationExtent-HRlogin-reports/report.html"},
tags= {"@HRlogin"}
)
public class HR_login_Runner
{
}

View File

@ -0,0 +1,18 @@
package com.machint.automation.Runner;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features="MAF/Feature/ERF.feature",
glue={"com.machint.automation.StepDefinition"},
monochrome = true,
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/AautomationExtent-Insurence-reports/report.html"},
tags= {"@Insurance"}
)
public class Insurance_Runner
{
}

View File

@ -0,0 +1,18 @@
package com.machint.automation.Runner;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features="MAF/Feature/ERF.feature",
glue={"com.machint.automation.StepDefinition"},
monochrome = true,
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/AautomationExtent-RegistrationForm-reports/report.html"},
tags= {"@registration"}
)
public class RegistrationFrom_Runner {
}

View File

@ -0,0 +1,155 @@
package com.machint.automation.StepDefinition;
import org.testng.annotations.Test;
import com.machint.automation.AutomationController;
import com.machint.automation.PageObject.ERF_PageObject;
import com.machint.automation.model.FormObject;
import cucumber.api.java.en.And;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.When;
public class ERFSteps extends ERF_PageObject
{
@Test
@Given("^User navigate to Pega Portal$")
public void user_navigate_to_Pega_Portal() throws Throwable
{
FormObject formData = AutomationController.formObject;
launchBrowser(formData.getBrowser(),formData.getEnvironment());
}
@Test
@When("^User enter project manager username and password$")
public void user_enter_project_manager_username_and_password() throws Throwable
{ readExcel("Pega");
String username = Machint_TestDataFromExcel("Username");
Machint_EnterTextField("name", Username , username , "visibilityOf");
String password = Machint_TestDataFromExcel("Password");
Machint_EnterTextField("name", Password, password, "visibilityOf");
}
@Test
@And("^Click on login button$")
public void click_on_login_button() throws Throwable
{
Machint_Click("xpath", Login, "visibilityOf");
}
@Test
@And("^User verify the project manager home page title$")
public void user_verify_the_project_manager_home_page_title() throws Throwable
{
Machint_getTitle("DManager");
}
@Test
@And("^Click on Employee Requisition Form ERF$")
public void click_on_Employee_Requisition_Form_ERF() throws Throwable
{
Machint_Click("xpath", ERF, "visibilityOf");
}
@Test
@And("^User entered ERF code details$")
public void user_entered_ERF_code_details() throws Throwable
{
Machint_Frame_webElement("xpath", IFrame, "visibilityOf");
String position = Machint_TestDataFromExcel("Username");
Machint_EnterTextField("xpath", Position, position, "visibilityOf");
String no_of_positions = Machint_TestDataFromExcel("No of Positions");
Machint_EnterTextField("id", No_of_Positions , no_of_positions, "visibilityOf");
String client_project = Machint_TestDataFromExcel("Client/ Project");
Machint_EnterTextField("id", Client_Project , client_project, "visibilityOf");
String projectID = Machint_TestDataFromExcel("Project ID");
Machint_EnterTextField("id", Project_ID , projectID, "visibilityOf");
String department = Machint_TestDataFromExcel("Department");
Machint_EnterTextField("id", Department , department, "visibilityOf");
String location = Machint_TestDataFromExcel("Location");
Machint_EnterTextField("id", Location , location, "visibilityOf");
String external_hiring = Machint_TestDataFromExcel("External Hiring");
Machint_selectValue("id", External_Hiring , external_hiring, "visibilityOf");
String reason_for_request = Machint_TestDataFromExcel("Reason for Request");
Machint_EnterTextField("id", Reason_for_Request , reason_for_request, "visibilityOf");
String salary_range = Machint_TestDataFromExcel("Salary Range");
Machint_selectValue("id", Salary_Range , salary_range, "visibilityOf");
String reporting = Machint_TestDataFromExcel("Reporting");
Machint_EnterTextField("id", Reporting , reporting, "visibilityOf");
String target_date_to_fill = Machint_TestDataFromExcel("Target Date to Fill");
Machint_EnterTextField("className", Target_Date_to_Fill , target_date_to_fill, "visibilityOf");
Machint_Click("xpath", Laptop, "visibilityOf");
Machint_Click("xpath", Bag, "visibilityOf");
Machint_Click("xpath", HRIS, "visibilityOf");
}
@Test
@And("^User entered the Job Specifications details$")
public void user_entered_the_Job_Specifications_details() throws Throwable
{
String job_responsibilities = Machint_TestDataFromExcel("Job Responsibilities");
Machint_EnterTextField("id", Job_Responsibilities, job_responsibilities, "visibilityOf");
String special_accountabilities = Machint_TestDataFromExcel("Special Accountabilities or Typical Goals");
Machint_EnterTextField("name", Special_Accountabilities, special_accountabilities, "visibilityOf");
String additional_inputs_to_roles = Machint_TestDataFromExcel("Additional Inputs to Roles");
Machint_EnterTextField("id", Additional_Inputs_to_Roles, additional_inputs_to_roles, "visibilityOf");
}
@Test
@And("^User entered the Competencies Required details$")
public void user_entered_the_Competencies_Required_details() throws Throwable
{
String practice = Machint_TestDataFromExcel("Practice");
Machint_selectVisibleText("id", Practice, practice, "visibilityOf");
String domain = Machint_TestDataFromExcel("Domain");
Machint_selectVisibleText("name", Domain, domain, "visibilityOf");
String is_certification_required = Machint_TestDataFromExcel("Is Certification Required");
Machint_selectVisibleText("id", Is_Certification_Required, is_certification_required, "visibilityOf");
String certifications = Machint_TestDataFromExcel("Certifications");
Machint_selectVisibleText("id", Certifications, certifications, "visibilityOf");
String technical_competency = Machint_TestDataFromExcel("Technical Competency");
Machint_EnterTextField("xpath", Technical_Competency, technical_competency, "visibilityOf");
String behavioural_competency = Machint_TestDataFromExcel("Behavioural Competency");
Machint_selectVisibleText("xpath", Behavioural_Competency, behavioural_competency, "visibilityOf");
String qualification = Machint_TestDataFromExcel("Qualification");
Machint_selectVisibleText("xpath", Qualification, qualification, "visibilityOf");
String overall_experience_in_years = Machint_TestDataFromExcel("Overall Experience In Years");
Machint_selectVisibleText("xpath", Overall_Experience_In_Years, overall_experience_in_years, "visibilityOf");
String relevant_experience_in_years = Machint_TestDataFromExcel("Overall Experience In Years");
Machint_selectVisibleText("xpath", Relevant_Experience_In_Years, relevant_experience_in_years, "visibilityOf");
}
@Test
@And("^User clicks on project manager submit button$")
public void user_clicks_on_project_manager_submit_button() throws Throwable
{
Machint_Click("xpath", Submit, "visibilityOf");
}
@Test
@And("^Project manager page display the message$")
public void project_manager_page_display_the_message() throws Throwable
{
}
@Test
@And("^In project manager page click on logoff$")
public void in_project_manager_page_click_on_logoff() throws Throwable
{
}
}

View File

@ -0,0 +1,216 @@
package com.machint.automation.StepDefinition;
import org.testng.annotations.Test;
import com.machint.automation.AutomationController;
import com.machint.automation.PageObject.HR_login_PageObject;
import com.machint.automation.model.FormObject;
import cucumber.api.java.en.And;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class HR_LoginSteps extends HR_login_PageObject
{
@Test
@Given("^user navigate to Machint Walk-In Drive Portal$")
public void user_navigate_to_Machint_Walk_In_Drive_Portal() throws Throwable
{
FormObject formData = AutomationController.formObject;
launchBrowser(formData.getBrowser(),formData.getEnvironment());
}
@Test
@When("^user verify the homepage title$")
public void user_verify_the_homepage_title() throws Throwable
{
Machint_getTitle("Mach");
}
@Test
@Then("^user entered the username and password in walk-in portal$")
public void user_entered_the_username_and_password_in_walkin_portal() throws Exception
{
readExcel("HR_Login");
String username = Machint_TestDataFromExcel("Username");
Machint_EnterTextField("id", Employee_Email , username,"visibilityOf");
String password = Machint_TestDataFromExcel("Password");
Machint_EnterTextField("id", Password, password, "visibilityOf");
}
@Test
@And("^user click on login button$")
public void user_click_on_login_button() throws Throwable
{
Machint_Click("xpath", Login, "visibilityOf");
}
@Test
@Then("^login successfully after display the search from$")
public void login_successfully_after_display_the_search_from() throws Throwable
{
Machint_getTitle("Machint");
}
@Test
@And("^user click on Profiles$")
public void user_click_on_Profiles() throws Throwable
{
Machint_Click("xpath", Profiles, "visibilityOf");
Machint_getTitle("Machint");
}
@Test
@And("^user select from and to dates$")
public void user_select_from_and_to_dates() throws Throwable
{
String from = Machint_TestDataFromExcel("From");
Machint_EnterTextField("xpath", From, from, "visibilityOf");
String to = Machint_TestDataFromExcel("To");
Machint_EnterTextField("xpath", To, to, "visibilityOf");
}
@Test
@And("^user click on submit button$")
public void user_click_on_submit_button() throws Throwable
{
Machint_Click("xpath", Submit, "visibilityOf");
}
@Test
@Then("^display the particular from and to date data$")
public void display_the_particular_from_and_to_date_data() throws Throwable
{
Machint_getTitle("Machint");
}
@Test
@And ("^search the profile id$")
public void search_the_profile_id() throws Throwable
{
Machint_EnterTextField("xpath", Search, "P0021", "visibilityOf");
}
@Test
@And("^check the that particular profile id$")
public void check_the_that_particular_profile_id() throws Throwable
{
Machint_Click("css", Check, "visibilityOf");
}
@Test
@And("^click on shortlist button$")
public void click_on_shortlist_button() throws Throwable
{
Machint_Click("xpath", Shortlist, "visibilityOf");
}
@Test
@Then("^display the alert message$")
public void display_the_alert_message() throws Throwable
{
Machint_acceptAlert();
}
@Test
@And("^user click on search icon$")
public void user_click_on_search_icon() throws Throwable
{
Machint_mouseHover(Search_Icon);
Machint_Click("xpath", Search_Icon,"visibilityOf");
}
@Test
@And("^user verify search page url$")
public void user_verify_search_page_url() throws Throwable
{
Machint_getTitle("Mach");
}
@Test
@And("^user entered the Search Form details$")
public void user_entered_the_Search_Form_details() throws Exception
{
String HiringPlan = Machint_TestDataFromExcel("HiringPlan");
Machint_selectValue("xpath", Hiring_Plan, HiringPlan, "visibilityOf");
String CandidateShortlisted= Machint_TestDataFromExcel("Candidate Shortlisted");
Machint_selectValue("xpath", Candidate_Shortlisted, CandidateShortlisted,"visibilityOf");
String HighestQualification = Machint_TestDataFromExcel("Highest Qualification");
Machint_EnterTextField("id", Highest_Qualification, HighestQualification, "visibilityOf");
String specialization = Machint_TestDataFromExcel("Specialization");
Machint_EnterTextField("id", Specialization, specialization, "visibilityOf");
String percentage = Machint_TestDataFromExcel("Percentage");
Machint_EnterTextField("id", Percentage, percentage, "visibilityOf");
String YearOfPassing = Machint_TestDataFromExcel("Year Of Passing");
Machint_EnterTextField("name", Year_Of_Passing, YearOfPassing, "visibilityOf");
String KnowledgeInJAVA = Machint_TestDataFromExcel("Knowledge In JAVA");
Machint_selectValue("id", Knowledge_In_JAVA, KnowledgeInJAVA, "visibilityOf");
String KnowledgeInPEGA = Machint_TestDataFromExcel("Knowledge In PEGA");
Machint_selectValue("id", Knowledge_In_PEGA, KnowledgeInPEGA, "visibilityOf");
String KnowledgeInAPPIAN = Machint_TestDataFromExcel("Knowledge In APPIAN");
Machint_selectValue("xpath", Knowledge_In_APPIAN, KnowledgeInAPPIAN, "visibilityOf");
String KnowledgeInRPA = Machint_TestDataFromExcel("Knowledge In RPA");
Machint_selectVisibleText("id", Knowledge_In_RPA, KnowledgeInRPA, "visibilityOf");
String KnowledgeInPYTHON = Machint_TestDataFromExcel("Knowledge In PYTHON");
Machint_selectVisibleText("id", Knowledge_In_PYTHON, KnowledgeInPYTHON, "visibilityOf");
String KnowledgeInDATABASE = Machint_TestDataFromExcel("Knowledge In DATABASE");
Machint_selectVisibleText("xpath", Knowledge_In_DATABASE, KnowledgeInDATABASE, "visibilityOf");
}
@Test
@And("^user click on search button$")
public void user_click_on_search_button() throws Throwable
{
Machint_Click("xpath", Search_btn, "visibilityOf");
}
@Test
@And ("^search the profile id in search from$")
public void search_the_profile_id_in_search_from() throws Throwable
{
Machint_EnterTextField("xpath", Search, "P0210", "visibilityOf");
}
@Test
@And("^check the that particular profile id in search from$")
public void check_the_that_particular_profile_id_in_search_from() throws Throwable
{
Machint_Click("xpath", Check_SearchFrom, "visibilityOf");
}
@Test
@And("^user click on Shortlist$")
public void user_click_on_Shortlist() throws Throwable
{
Machint_Click("xpath", Shortlist, "visibilityOf");
}
@Test
@Then("^display the alert messgae in search form$")
public void display_the_alert_message_in_search_form() throws Throwable
{
Machint_acceptAlert();
}
@Test
@And("^user click on download selected$")
public void user_click_on_download_selected() throws Throwable
{
Machint_Click("xpath", Search_btn, "visibilityOf");
Machint_EnterTextField("xpath", Search, "P0210", "visibilityOf");
Machint_Click("xpath", Check_SearchFrom, "visibilityOf");
// Machint_Click("xpath", DownloadSelected, "visibilityOf");
}
@Test
@And("^user click on send mail")
public void user_click_on_send_mail() throws Throwable
{
Machint_Click("xpath", Send_Mail, "visibilityOf");
}
@Test
@And("^user click on logout icon")
public void user_click_on_logout_icon() throws Throwable
{
Machint_Click("xpath", Logout, "visibilityOf");
driver.close();
}
}

View File

@ -0,0 +1,190 @@
package com.machint.automation.StepDefinition;
import org.testng.annotations.Test;
import com.machint.automation.AutomationController;
import com.machint.automation.PageObject.Insurance_PageObject;
import com.machint.automation.model.FormObject;
import cucumber.api.java.en.And;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class InsuranceSteps extends Insurance_PageObject
{
@Test
@Given("^user navigate to parthenon page$")
public void user_navigate_to_parthenon_page() throws Throwable
{
FormObject formData = AutomationController.formObject;
launchBrowser(formData.getBrowser(),formData.getEnvironment());
}
@Test
@When("^user validates homepage title$")
public void user_validates_homepage_title() throws InterruptedException
{
Machint_FutureDate();
Machint_getTitle("Appian for Rainbow Digital Marketing &amp; Analytics Pte Ltd (DEV)");
}
@Test
@Then("^user entered the username and password$")
public void user_entered_the_username_and_password() throws Throwable
{
readExcel("Insurance");
String username = Machint_TestDataFromExcel("Username");
Machint_EnterTextField("id", Username, username, "visibilityOf");
String password = Machint_TestDataFromExcel("Password");
Machint_EnterTextField("id", Password, password, "visibilityOf");
}
@Test
@And("^user click on signin button$")
public void user_click_on_signin_button() throws Throwable
{
Machint_Click("xpath", Signin, "visibilityOf");
}
@Test
@Then("^parthenon page should be displayed$")
public void parthenon_page_should_be_displayed() throws InterruptedException
{
Machint_getTitle("HOME - Parthenon");
}
//Actions
@Test
@Given("^user click on actions$")
public void user_click_on_actions() throws Throwable
{
Machint_Click("xpath", Actions, "visibilityOf");
}
@Test
@When("^user validates action page$")
public void user_validates_action_page() throws Throwable
{
Machint_getTitle("//Actions - Parthenon");
}
@Test
@And("^user click on Case management$")
public void user_click_on_Case_management() throws Throwable
{
Machint_Click("xpath", Case_management, "visibilityOf");
}
@Test
@And("^user create case in case management$")
public void user_create_case_in_case_management() throws Throwable
{
String LineOfBusiness = Machint_TestDataFromExcel("Line of business");
Machint_EnterTextKey("xpath", Line_of_business, LineOfBusiness, "visibilityOf");
String ProductCategory = Machint_TestDataFromExcel("Product category");
Machint_EnterTextKey("xpath", Product_category, ProductCategory, "visibilityOf");
String product = Machint_TestDataFromExcel("Product");
Machint_EnterTextKey("xpath", Product , product, "visibilityOf");
}
@Test
@And ("^after select the product catalogue in SH - Advanced table click on select button$")
public void after_select_the_product_catalogue_in_SH_Advanced_table_click_on_select_button() throws Throwable
{
Machint_Click("xpath", Select, "visibilityOf");
}
@Test
@And("^click on continue button$")
public void click_on_continue_button() throws Throwable
{
Machint_Click("xpath", Continue, "visibilityOf");
}
@Test
@And("^click on add customer button$")
public void click_on_add_customer_button() throws Throwable
{
Machint_Click("xpath", Add_customer, "visibilityOf");
}
@Test
@Then("^in SH-Advanced Personal Details page displayed$")
public void in_SH_Advanced_Personal_Details_page_displayed() throws InterruptedException
{
Machint_getTitle("PA Customer On-Boarding - Parthenon//");
}
@Test
@And("^user enter personal details$")
public void user_enter_personal_details() throws Throwable
{
String title = Machint_TestDataFromExcel("Title");
Machint_EnterTextKey("xpath", Title , title, "visibilityOf");
String first_name = Machint_TestDataFromExcel("First Name");
Machint_EnterTextField("xpath", First_name , first_name, "visibilityOf");
String middle_name = Machint_TestDataFromExcel("Middle Name");
Machint_EnterTextField("xpath", Middle_name , middle_name, "visibilityOf");
String last_name = Machint_TestDataFromExcel("Last Name");
Machint_EnterTextField("xpath", Last_name , last_name, "visibilityOf");
String customer_type = Machint_TestDataFromExcel("Customer Type");
Machint_EnterTextKey("xpath", Customer_type , customer_type, "visibilityOf");
String mobile_number = Machint_TestDataFromExcel("Mobile Number");
Machint_EnterTextField("xpath", Mobile_number , mobile_number, "visibilityOf");
String email = Machint_TestDataFromExcel("Email");
Machint_EnterTextField("xpath", Email , email, "visibilityOf");
String date_of_birth = Machint_TestDataFromExcel("Date Of Birth");
Machint_EnterTextField("xpath", Date_of_birth , date_of_birth, "visibilityOf");
Machint_Click("xpath", Gender, "visibilityOf");
Machint_Click("xpath", Un_married, "visibilityOf");
}
@Test
@And("^click on add new row in family details$")
public void click_on_add_new_row_in_family_details() throws Throwable
{
Machint_Click("xpath", Add_new_row, "visibilityOf");
}
@Test
@And("^user enter family details$")
public void user_enter_family_details() throws Throwable
{
String title = Machint_TestDataFromExcel("Family Details Title");
Machint_EnterTextKey("xpath", FamilyDetails_title, title, "visibilityOf");
String relation_type = Machint_TestDataFromExcel("Family Details Relation Type");
Machint_EnterTextKey("xpath", FamilyDetails_Relation_Type, relation_type, "visibilityOf");
String first_name = Machint_TestDataFromExcel("Family Details First Name");
Machint_EnterTextField("xpath", FamilyDetails_first_name, first_name, "visibilityOf");
String last_name = Machint_TestDataFromExcel("Family Details Last Name");
Machint_EnterTextField("xpath", FamilyDetails_last_name, last_name, "visibilityOf");
String middle_name = Machint_TestDataFromExcel("Family Details Middle Name");
Machint_EnterTextField("xpath", FamilyDetails_middle_name, middle_name, "visibilityOf");
String gender = Machint_TestDataFromExcel("Family Details Gender");
Machint_EnterTextKey("xpath", FamilyDetails_gender, gender, "visibilityOf");
String date_of_birth = Machint_TestDataFromExcel("Family Details Date Of Birth");
Machint_EnterTextField("xpath", FamilyDeatils_date_of_birth, date_of_birth, "visibilityOf");
String mobile_number = Machint_TestDataFromExcel("Family Details Mobile Number");
Machint_EnterTextField("xpath", FamilyDetails_mobile_number, mobile_number, "visibilityOf");
}
@Test
@And("^click on next button$")
public void click_on_next_button() throws Throwable
{
Machint_Click("xpath", Next, "visibilityOf");
}
@Test
@Then("^KYC documents page displayed$")
public void KYC_documents_page_displayed() throws Throwable
{
driver.close();
}
}

View File

@ -0,0 +1,151 @@
package com.machint.automation.StepDefinition;
import org.testng.annotations.Test;
import com.machint.automation.AutomationController;
import com.machint.automation.PageObject.RegistrationFrom_PageObject;
import com.machint.automation.model.FormObject;
import cucumber.api.java.en.And;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class RegistrationSteps extends RegistrationFrom_PageObject
{
@Test
@Given("^user navigate to registration form$")
public void user_navigate_to_registration_form() throws Throwable
{
FormObject formData = AutomationController.formObject;
launchBrowser(formData.getBrowser(),formData.getEnvironment());
}
@Test
@When("^user validates the homepage$")
public void user_validates_the_homepage() throws Throwable
{
Machint_getTitle("hint");
}
@Test
@Then("^user entered the Personal Information details$")
public void user_entered_the_Personal_Information_details() throws Throwable
{
readExcel("RegistrationForm");
String firstname = Machint_TestDataFromExcel("FirstName");
Machint_EnterTextField("xpath", First_Name, firstname, "visibilityOf");
String lastname = Machint_TestDataFromExcel("LastName");
Machint_EnterTextField("id", Last_Name, lastname, "visibilityOf");
String contactno = Machint_TestDataFromExcel("ContactNumber");
Machint_EnterTextField("id",Contact_Number, contactno, "visibilityOf");
String alternatecontactno = Machint_TestDataFromExcel("AlternateContactNumber");
Machint_EnterTextField("id",Alternate_Contact_Number, alternatecontactno, "visibilityOf");
String email = Machint_TestDataFromExcel("Email");
Machint_EnterTextField("id",Email, email, "visibilityOf");
String city = Machint_TestDataFromExcel("City");
Machint_EnterTextField("id",City, city, "visibilityOf");
String location = Machint_TestDataFromExcel("CurrentLocation");
Machint_EnterTextField("id",Location, location, "visibilityOf");
String permanentlocation = Machint_TestDataFromExcel("PermanentLocation");
Machint_EnterTextField("id",Permanent_Location, permanentlocation, "visibilityOf");
String address = Machint_TestDataFromExcel("Address");
Machint_EnterTextField("xpath",Address, address, "visibilityOf");
Machint_mouseHover(Education_Information);
Machint_AssertEquals("xpath", "//div/h4[text()='Personal Information']", "Personal Information:");
}
@Test
@And("^user navigate to Education Information and entered the Education Information details$")
public void user_navigate_to_Education_Information_and_entered_the_Education_Information_details() throws Throwable
{
String highestqualification = Machint_TestDataFromExcel("HighestQualification");
Machint_selectVisibleText("xpath",Highest_Qualification, highestqualification, "visibilityOf");
String specialization = Machint_TestDataFromExcel("Specialization");
Machint_selectVisibleText("id",Specialization, specialization, "visibilityOf");
String percentage = Machint_TestDataFromExcel("Percentage");
Machint_EnterTextField("id",Percentage, percentage, "visibilityOf");
String yearofpassing = Machint_TestDataFromExcel("YearOfPassing");
Machint_EnterTextField("name",Year_Of_Passing, yearofpassing, "visibilityOf");
Machint_mouseHover(Technical_Knowledge);
Machint_AssertEquals("xpath", "//div/h4[text()='Education Information']", "Education Information");
}
@Test
@And("^user navigate to Technical Knowledge and entered the Technical Knowledge details$")
public void user_navigate_to_Technical_Knowledge_and_entered_the_Technical_Knowledge_details() throws Throwable
{
String Java = Machint_TestDataFromExcel("Knowledge In JAVA");
Machint_selectValue("xpath",Knowledge_In_JAVA, Java, "visibilityOf");
String Pega = Machint_TestDataFromExcel("Knowledge In PEGA");
Machint_selectValue("xpath",Knowledge_In_PEGA, Pega, "visibilityOf");
String Appian = Machint_TestDataFromExcel("Knowledge In APPIAN");
Machint_selectValue("xpath",Knowledge_In_APPIAN, Appian, "visibilityOf");
String RPA = Machint_TestDataFromExcel("Knowledge In RPA");
Machint_selectValue("xpath",Knowledge_In_RPA, RPA, "visibilityOf");
String Python = Machint_TestDataFromExcel("Knowledge In PYTHON");
Machint_selectValue("xpath",Knowledge_In_PYTHON, Python, "visibilityOf");
String Database= Machint_TestDataFromExcel("Knowledge In DATABASE");
Machint_selectValue("xpath",Knowledge_In_DATABASE, Database, "visibilityOf");
Machint_mouseHover(Other_Info);
Machint_AssertEquals("xpath", "//div/h4[text()='Technical Knowledge']", "Technical Knowledge");
}
@Test
@Then("^user navigate the Other Info and entered the Other Info details$")
public void user_navigate_the_Other_Info_and_entered_the_Other_Info_details() throws Exception
{
String source = Machint_TestDataFromExcel("Source");
Machint_selectValue("name",Source, source, "visibilityOf");
// String employee_referral = Machint_TestDataFromExcel("Employee referral");
// Machint_selectValue("xpath",registration.Employee_referral, employee_referral, "visibilityOf");
String message = Machint_TestDataFromExcel("Message");
Machint_EnterTextField("name",Message, message, "visibilityOf");
String position = Machint_TestDataFromExcel("Have you applied for any position in our organization in past 6 months");
Machint_selectValue("id",Position, position, "visibilityOf");
Machint_AssertEquals("xpath", "//div/h4[text()='Other Info']", "Other Info:");
}
@Test
@And("^user click on choose file and upload the resume$")
public void user_click_on_choose_file_and_upload_the_resume() throws Throwable
{
Machint_EnterTextField("xpath",Resume, "C:\\Users\\durga\\Desktop\\Automation\\Automation Strategy.docx", "visibilityOf");
}
@Test
@And("^click on Submit button$")
public void click_on_Submit_button() throws Throwable
{
Machint_Click("xpath", submit, "visibilityOf");
}
@Test
@Then("^your registration process completed$")
public void your_registration_process_completed() throws Throwable
{
driver.close();
}
}

View File

@ -0,0 +1,727 @@
package com.machint.automation.Utils;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.NoSuchFrameException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
import com.machint.automation.base.BaseClass;
public class ActionClass extends BaseClass
{
public static WebElement element;
public static By by, locator;
public static Select select;
public static WebDriverWait wait;
public static Actions action;
public static String actual, actualValue;
public static Boolean flag;
public static Alert alert ;
public static By Machint_locator(String locatorType, String LocatorValue)
{
switch (locatorType)
{
case "id":
by = By.id(LocatorValue);
break;
case "name":
by = By.name(LocatorValue);
break;
case "className":
by = By.className(LocatorValue);
break;
case "tagName":
by = By.tagName(LocatorValue);
break;
case "xpath":
by = By.xpath(LocatorValue);
break;
case "css":
by = By.cssSelector(LocatorValue);
break;
case "linkText":
by = By.linkText(LocatorValue);
break;
case "partialLinkText":
by = By.partialLinkText(LocatorValue);
break;
default:
by = null;
break;
}
return by;
}
public static void Machint_EnterTextKey(String LocatorType, String LocatorValue, String value, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_Waits(WaitType);
element.click();
element.sendKeys(value);
element.sendKeys(Keys.ENTER);
Machint_JSHighlight(element);
Thread.sleep(2000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_EnterTextKey \t" + e);
}
}
public static void Machint_EnterTextField(String LocatorType, String LocatorValue, String value, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_JSHighlight(element);
Machint_Waits(WaitType);
element.clear();
element.sendKeys(value);
Thread.sleep(2000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_EnterTextField \t" + e);
}
}
public static void Machint_Click(String LocatorType, String LocatorValue, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_JSHighlight(element);
Machint_Waits(WaitType);
element.click();
Thread.sleep(3000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to perform Machint_Click \t" + e);
}
}
public static void Machint_contextClick(String LocatorType, String LocatorValue, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_JSHighlight(element);
Machint_Waits(WaitType);
action=new Actions(driver);
action.contextClick(element).build().perform();
Thread.sleep(1000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to perform Machint_DoubleClick \t" + e);
}
}
public static void Machint_doubleClick(String LocatorType, String LocatorValue, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_JSHighlight(element);
Machint_Waits(WaitType);
action=new Actions(driver);
action.moveToElement(element).doubleClick().build().perform();
Thread.sleep(1000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to perform Machint_DoubleClick \t" + e);
}
}
public static void Machint_clickAndHold(String LocatorType, String LocatorValue, String WaitType) throws Exception
{
try
{
action = new Actions(driver);
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
action.clickAndHold(element).build().perform();
Machint_JSHighlight(element);
Machint_Waits(WaitType);
element.click();
Thread.sleep(3000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to perform Machint_ClickAndHoldAction\t" + e);
}
}
public static void Machint_selectValue(String LocatorType, String LocatorValue, String text, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_JSHighlight(element);
Machint_Waits(WaitType);
select = new Select(element);
select.selectByValue(text);
Thread.sleep(1000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_selectValue \t" + e);
}
}
public static void Machint_selectIndex(String LocatorType, String LocatorValue, int value, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_JSHighlight(element);
Machint_Waits(WaitType);
select = new Select(element);
select.selectByIndex(value);
Thread.sleep(1000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_selectIndex \t" + e);
}
}
public static void Machint_selectVisibleText(String LocatorType, String LocatorValue, String text, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_JSHighlight(element);
Machint_Waits(WaitType);
select = new Select(element);
select.selectByVisibleText(text);
Thread.sleep(1000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_selectVisibleText \t" + e);
}
}
public static void Machint_Waits(String WaitType) throws Exception
{
switch (WaitType)
{
case "visibilityOf":
Machint_visibilityOf();
break;
case "visibilityOfAllElements":
Machint_visibilityOfAllElements();
break;
case "elementToBeClickable":
Machint_elementToBeClickable();
break;
case "elementToBeSelected":
Machint_elementToBeSelected();
break;
case "elementSelectionStateToBe":
Machint_elementSelectionStateToBe();
break;
case "frameToBeAvailableAndSwitchToIt":
Machint_frameToBeAvailableAndSwitchToIt();
break;
case "invisibilityOf":
Machint_invisibilityOf();
break;
case "invisibilityOfAllElements":
Machint_invisibilityOfAllElements();
break;
default:
System.out.println(WaitType+ " is invalid");
}
}
public static void Machint_visibilityOf()
{
try
{
wait = new WebDriverWait(driver, 1000);
if(element != null)
{
wait.until(ExpectedConditions.visibilityOf(element));
}
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_visibilityOf \t" + e);
}
}
public static void Machint_visibilityOfAllElements()
{
try
{
wait = new WebDriverWait(driver,1000);
if(element != null)
{
wait.until(ExpectedConditions.visibilityOfAllElements(element));
}
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_visibilityOfAllElements \t" + e);
}
}
public static void Machint_elementToBeClickable()
{
try
{
wait = new WebDriverWait(driver,1000);
if(element != null)
{
wait.until(ExpectedConditions.elementToBeClickable(element));
}
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_elementToBeClickable \t" + e);
}
}
public static void Machint_elementSelectionStateToBe()
{
try
{
wait = new WebDriverWait(driver,1000);
if(element != null)
{
wait.until(ExpectedConditions.elementSelectionStateToBe(element, flag));
}
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_elementSelectionStateToBe \t" + e);
}
}
public static void Machint_elementToBeSelected()
{
try
{
wait = new WebDriverWait(driver,1000);
if(element != null)
{
wait.until(ExpectedConditions.elementToBeSelected(element));
}
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_elementToBeSelected \t" + e);
}
}
public static void Machint_frameToBeAvailableAndSwitchToIt()
{
try
{
wait = new WebDriverWait(driver,1000);
if(element != null)
{
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(element));
}
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_frameToBeAvailableAndSwitchToIt \t" + e);
}
}
public static void Machint_invisibilityOf()
{
try
{
wait = new WebDriverWait(driver,1000);
if(by != null)
{
wait.until(ExpectedConditions.invisibilityOf(element));
}
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_invisibilityOf \t" + e);
}
}
public static void Machint_invisibilityOfAllElements()
{
try
{
wait = new WebDriverWait(driver,1000);
if(element != null)
{
wait.until(ExpectedConditions.invisibilityOfAllElements(element));
}
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to Machint_invisibilityOfAllElements \t" + e);
}
}
public static void Machint_JSHighlight(WebElement ele)
{
if (driver instanceof JavascriptExecutor)
{
((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('style', 'background: skyblue; border: 2px solid yellow;');",ele);
}
}
public static boolean Machint_acceptAlert()
{
boolean boolFound = false;
try
{
wait = new WebDriverWait(driver, 1000);
wait.until(ExpectedConditions.alertIsPresent());
alert = driver.switchTo().alert();
if (alert != null)
{
alert.accept();
boolFound = true;
}
}
catch (NoAlertPresentException ex)
{
boolFound = false;
ex.printStackTrace();
}
return boolFound;
}
public static boolean Machint_dismissAlert()
{
boolean boolFound = false;
try
{
wait = new WebDriverWait(driver, 1000);
wait.until(ExpectedConditions.alertIsPresent());
alert = driver.switchTo().alert();
if (alert != null)
{
alert.dismiss();
boolFound = true;
}
}
catch (NoAlertPresentException ex)
{
boolFound = false;
ex.printStackTrace();
}
return boolFound;
}
public static boolean Machint_getAlertText()
{
boolean boolFound = false;
try
{
wait = new WebDriverWait(driver, 1000);
wait.until(ExpectedConditions.alertIsPresent());
alert = driver.switchTo().alert();
String AlertMsg=driver.switchTo().alert().getText();
if (alert != null)
{
alert.accept();
System.out.println(AlertMsg);
boolFound = true;
}
}
catch (NoAlertPresentException ex)
{
boolFound = false;
ex.printStackTrace();
}
return boolFound;
}
public static void Machint_getTitle(String Expected)
{
String Title = driver.getTitle();
Assert.assertEquals(Title, Expected);
}
public static String Machint_AssertEquals(String LocatorType, String LocatorValue, String expectedValue)
{
locator = Machint_locator(LocatorType, LocatorValue);
actualValue = driver.findElement(locator).getText();
System.out.println("Actual Value is \t"+actualValue);
Assert.assertEquals(actualValue, expectedValue);
return actualValue;
}
public static boolean Machint_NotEquals_Validation(String LocatorType,String LocatorValue, String expected)
{
locator = Machint_locator(LocatorType, LocatorValue);
String element = driver.findElement(locator).getText();
flag = false;
if(element != null)
{
Assert.assertNotEquals(element, expected);
flag = true;
}
else
{
System.out.println("Actual Value and Expected Value Matched");
}
return flag;
}
public static boolean Machint_True_Validation(String LocatorType,String LocatorValue, String expected)
{
locator = Machint_locator(LocatorType, LocatorValue);
boolean condition = driver.findElement(locator).getText() != null;
flag = false;
if(element != null)
{
Assert.assertTrue( condition, expected);
flag = true;
System.out.println(flag);
}
else
{
System.err.format("Validation is not performed");
}
return flag;
}
public static boolean Machint_False_Validation(String LocatorType,String LocatorValue, String expected)
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
boolean condition = driver.findElement(locator).getText() != null;
flag = false;
if(element != null)
{
Assert.assertFalse( condition, expected);
flag = true;
System.out.println(flag);
}
}
catch (NoSuchElementException e)
{
System.err.format("Validation is not performed");
}
return flag;
}
public static void Machint_mouseHover(String LocatorValue) throws Throwable
{
action = new Actions(driver);
element = driver.findElement(By.xpath(LocatorValue));
action.moveToElement(element).build().perform();
}
public static void Machint_Frame_webElement(String LocatorType, String LocatorValue, String WaitType) throws Exception
{
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
Machint_Waits(WaitType);
driver.switchTo().frame(element);
Thread.sleep(2000);
}
catch (NoSuchElementException e)
{
System.err.format("No Element Found to perform Machint_Frame \t" + e);
}
}
public void Machint_switchToFrame(String ParentFrame, String ChildFrame)
{
try
{
driver.switchTo().frame(ParentFrame).switchTo().frame(ChildFrame);
}
catch (NoSuchFrameException e)
{
System.out.println("Unable to locate frame with id " + ParentFrame + " or " + ChildFrame + e.getStackTrace());
}
catch (Exception e)
{
System.out.println("Unable to navigate to innerframe with id "+ ChildFrame + "which is present on frame with id"+ParentFrame + e.getStackTrace());
}
}
public static void Machint_defaultframe()
{
try
{
driver.switchTo().defaultContent();
}
catch (Exception e)
{
System.out.println("unable to navigate back to parent frame"+e.getStackTrace());
}
}
public static void Machint_windowhandle()
{
String Parent=driver.getWindowHandle();
Set<String>s=driver.getWindowHandles();
Iterator<String> I1= s.iterator();
while(I1.hasNext())
{
String child_window=I1.next();
if(!Parent.equals(child_window))
{
driver.switchTo().window(child_window);
System.out.println(driver.switchTo().window(child_window).getTitle());
driver.close();
}
}
}
public static void Machint_YesterdayDate()
{
DateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
// Calendar today = Calendar.getInstance();
Calendar yesterday = Calendar.getInstance();
yesterday.add(Calendar.DATE, -1);
Date d = yesterday.getTime(); // get a Date object
String yesDate = sdf.format(d); // toString for Calendars is mostly not really useful
System.out.println("Yesterday Date is \t"+yesDate);
}
public static void Machint_CurrentDate()
{
DateFormat sdf = new SimpleDateFormat("dd/MM/YYYY");
Date date = new Date();
String Date = sdf.format(date);
System.out.println("Current Date is\t"+Date);
}
public static void Machint_FutureDate()
{
DateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
Calendar futureDate = Calendar.getInstance();
futureDate.add(Calendar.DATE, 7);
Date date = futureDate.getTime();
String Date = sdf.format(date);
System.out.println("Future Date is\t"+Date);
}
public static void Machint_CurrentMonth()
{
int month;
Calendar cal = Calendar.getInstance();
month = cal.get(Calendar.MONTH);
month = month+1;
System.out.println("Current month is " + month);
}
public static void Machint_CurrentYear()
{
int year;
Calendar cal = Calendar.getInstance();
year = cal.get(Calendar.YEAR);
System.out.println("Current year is " + year);
}
public static void Machint_getToolTip() throws Exception
{
// Get tooltip text
String toolTipText = element.getAttribute("title").toString();
System.out.println("Tool tip text present :- " + toolTipText);
// Compare toll tip text
// Assert.assertEquals(toolTipText, expectedValue);
}
public static Boolean Machint_DragandDropby(String LocatorType, String LocatorValue, int x, int y) throws Exception
{
boolean flag = false;
try
{
locator = Machint_locator(LocatorType, LocatorValue);
element = driver.findElement(locator);
action=new Actions(driver);
action.dragAndDropBy(element, x, y).build().perform();
flag = true;
return flag;
}
catch (Exception e)
{
return false;
}
}
public boolean isCheckBoxSelected(String LocatorType, String LocatorValue) throws Throwable
{
boolean flag = false;
try
{
locator = Machint_locator(LocatorType, LocatorValue);
if (driver.findElement(locator).isSelected()) {
flag = true;
}
return flag;
}
catch (NoSuchElementException e)
{
flag = false;
return flag;
}
}
}

View File

@ -0,0 +1,202 @@
package com.machint.automation.Utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelData
{
static XSSFCell cell, cell0;
static XSSFSheet sheet;
static XSSFWorkbook excelWorkbook;
static XSSFRow row;
static String filePath = "MAF/testdatafolder/TestData.xlsx";
static File file;
static FileInputStream inputFile;
static FileOutputStream outputFile;
static int rowcount;
static int i,j;
public static String cellValue, celldata;
public static void readExcel(String sheetName) throws Exception
{
file = new File(filePath);
FileInputStream inputStream = new FileInputStream(file);
excelWorkbook = new XSSFWorkbook(inputStream);
sheet = excelWorkbook.getSheet(sheetName);
}
public static int getRowCount()
{
int rowcount = sheet.getLastRowNum();
return rowcount;
}
public static int getColumnCount()
{
row = sheet.getRow(0);
int colCount = row.getLastCellNum();
return colCount;
}
public static String getCellContentAsString(Cell cell) throws Exception
{
switch (cell.getCellType())
{
case Cell.CELL_TYPE_BLANK:
celldata="";
break;
case Cell.CELL_TYPE_STRING:
celldata=cell.getStringCellValue();
break;
case Cell.CELL_TYPE_NUMERIC:
DataFormatter df=new DataFormatter();
celldata=df.formatCellValue(cell);
break;
case Cell.CELL_TYPE_FORMULA:
celldata=String.valueOf(cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_BOOLEAN:
celldata=String.valueOf(cell.getBooleanCellValue());
break;
default:
celldata=cell.getStringCellValue();
break;
}
return celldata;
}
public static String getCellData(int rowcount, int ColNum) throws Exception
{
String result = null;
cell = sheet.getRow(rowcount).getCell(ColNum);
result = getCellContentAsString(cell);
return result;
}
public static String Machint_TestDataFromExcel(String ColumnName) throws Exception
{
for(i=1;i<=getRowCount() ; i++)
{
row = sheet.getRow(i);
cell=row.getCell(0);
String Actionvalue = cell.getStringCellValue();
if(Actionvalue.equalsIgnoreCase(ColumnName))
{
cell = sheet.getRow(i).getCell(1);
cellValue = getCellContentAsString(cell);
}
}
return cellValue;
}
public static String Machint_TestDataFromExcelFile(String ColumnName) throws Exception
{
try
{
int totalNoOfRows = sheet.getLastRowNum() - sheet.getFirstRowNum();
row = sheet.getRow(0);
HashMap<String, String> map = new HashMap<String, String>();
for (int row2 = 1; row2 < totalNoOfRows; row2++) {
Row row1 = sheet.getRow(row2);
if ((row1.getCell(0).getStringCellValue()).equals(ColumnName)) {
for (int col = 1; col < row1.getLastCellNum(); col++)
{
map.put(row.getCell(col).getStringCellValue(), row1.getCell(col).getStringCellValue());
}
}
System.out.println(map);
}
} catch (Exception e) {
e.printStackTrace();
}
return cellValue;
}
public static List<LinkedHashMap<String, String>> getExcelDataAsMap() throws Exception
{
// Initialized an empty List which retain order
List<LinkedHashMap<String, String>> dataList = new ArrayList<>();
// Get data set count which will be equal to cell counts of any row
int countOfDataSet = sheet.getRow(0).getPhysicalNumberOfCells();
// Skipping first column as it is field names
for (int i = 1; i < countOfDataSet; i++)
{
System.out.println("Number of countOfDataSet \t"+countOfDataSet);
// Creating a map to store each data set individually
LinkedHashMap<String, String> data = new LinkedHashMap<>();
// Get the row i.e field names count
int rowCount = sheet.getPhysicalNumberOfRows();
System.out.println("Row count is \t"+rowCount);
// Now we need to iterate all rows but cell should increases once all row is done
// i.e. (1,1),(2,1),(3,1),(4,1),(5,1) - First iteration
// (1,2),(2,2),(3,2),(4,2),(5,2) - Second iteration
// (1,3),(2,3),(3,3),(4,3),(5,3) - Third iteration
for(int j = 1; j<rowCount ; j++)
{
row = sheet.getRow(j);
// Field name is constant as 0th index
// cell = row.getCell(0);
// String fieldName = getCellContentAsString(cell);
String fieldName = row.getCell(0).getStringCellValue();
System.out.println("Excel field name is \t"+fieldName);
cell = row.getCell(i);
String fieldValue = getCellContentAsString(cell);
System.out.println("Excel field Value is \t"+fieldValue);
// Add data in map
data.put(fieldName, fieldValue);
}
// Add map to list after each iteration
dataList.add(data);
}
return dataList;
}
// public static void main(String[] args) throws EncryptedDocumentException, IOException
// {
//
// List<LinkedHashMap<String, String>> mapDataList = getExcelDataAsMap();
//
// for(int k = 0; k<mapDataList.size() ; k++)
// {
// System.out.println("Data Set "+ (k+1) +" : ");
// for(String s: mapDataList.get(k).keySet())
// {
// System.out.println("Value of "+s +" is : "+mapDataList.get(k).get(s));
// }
// System.out.println("========================================================");
// }
// }
}

View File

@ -0,0 +1,41 @@
package com.machint.automation.Utils;
//package com.Utils;
//
//
//import org.junit.AfterClass;
//import org.junit.BeforeClass;
//
//import com.machint.automation.base.BaseClass;
//import com.relevantcodes.extentreports.ExtentReports;
//import com.relevantcodes.extentreports.ExtentTest;
//
//public class ext extends BaseClass
//{
// protected ExtentTest test;
// ExtentReports report;
// @BeforeClass
// public void startTest()
// {
// report = new ExtentReports(System.getProperty("user.dir")+"\\ExtentReportResults.html");
// test = report.startTest("Ext");
// }
//
// /*
// * @Test public void extentReportsDemo() {
// * System.setProperty("webdriver.chrome.driver",
// * "D:\\SubmittalExchange_TFS\\QA\\Automation\\3rdparty\\chrome\\chromedriver.exe"
// * ); WebDriver driver = new ChromeDriver();
// * driver.get("https://www.google.co.in");
// * if(driver.getTitle().equals("Google")) { test.log(LogStatus.PASS,
// * "Navigated to the specified URL"); } else { test.log(LogStatus.FAIL,
// * "Test Failed"); } }
// */
// @AfterClass
// public void endTest()
// {
// report.endTest(test);
// report.flush();
// }
// }
//
//

View File

@ -0,0 +1,99 @@
package com.machint.automation.base;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterSuite;
import com.machint.automation.Utils.ExcelData;
public class BaseClass extends ExcelData
{
public static WebDriver driver;
static DesiredCapabilities ieCapabilities;
public static WebDriver launchBrowser(String browserType, String appURL) throws Exception
{
switch (browserType)
{
case "Chrome":
initChromeDriver(appURL);
break;
case "Firefox":
initFirefoxDriver(appURL);
break;
case "InternetExplorer":
initInternetExplorer(appURL);
break;
default:
System.out.println("browser : " + browserType+ " is invalid");
}
return driver;
}
public static void initChromeDriver(String appURL) throws Exception
{
System.out.println("Launching google chrome with new profile..");
System.setProperty("webdriver.chrome.driver", "MAF/Drivers/geckodriver");
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200","--ignore-certificate-errors", "--silent");
driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.get(appURL);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
}
public static void initFirefoxDriver(String appURL) throws Exception
{
System.out.println("Launching Firefox browser..");
System.setProperty("webdriver.gecko.driver", "MAF/Drivers/geckodriver");
FirefoxOptions options = new FirefoxOptions();
options.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200","--ignore-certificate-errors", "--silent");
driver = new FirefoxDriver(options);
driver.manage().window().maximize();
driver.get(appURL);
driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
}
public static void initInternetExplorer(String appURL) throws Exception
{
System.out.println("Launching InternetExplorer browser..");
System.setProperty("webdriver.ie.driver", System.getProperty("user.dir")+"\\Drivers\\IEDriverServer.exe");
ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, false);
ieCapabilities.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, "accept");
// ieCapabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
ieCapabilities.setCapability(InternetExplorerDriver.NATIVE_EVENTS, true);
ieCapabilities.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
ieCapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
ieCapabilities.setCapability("disable-popup-blocking", true);
ieCapabilities.setCapability("ignoreProtectedModeSettings", true);
ieCapabilities.setJavascriptEnabled(true);
driver = new InternetExplorerDriver(ieCapabilities);
driver.manage().window().maximize();
driver.get(appURL);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
}
@AfterSuite
public void Close()
{
driver.quit();
}
}

View File

@ -0,0 +1,39 @@
//package com.machint.automation.base;
//
//
//import org.junit.AfterClass;
//import org.junit.BeforeClass;
//import com.relevantcodes.extentreports.ExtentReports;
//import com.relevantcodes.extentreports.ExtentTest;
//
//public class ExtentDemo {
//protected static ExtentTest test;
//static ExtentReports report;
//
//
//@BeforeClass
//public static void startTest()
//{
//report = new ExtentReports(System.getProperty("D:\\WorkspaceD\\AutomationFramework\\EReorts")+"\\ExtentReportResults.html");
//test = report.startTest("ExtentDemo");
//}
//
///*
// * @Test public void extentReportsDemo() {
// * System.setProperty("webdriver.chrome.driver",
// * "D:\\SubmittalExchange_TFS\\QA\\Automation\\3rdparty\\chrome\\chromedriver.exe"
// * ); WebDriver driver = new ChromeDriver();
// * driver.get("https://www.google.co.in");
// * if(driver.getTitle().equals("Google")) { test.log(LogStatus.PASS,
// * "Navigated to the specified URL"); } else { test.log(LogStatus.FAIL,
// * "Test Failed"); }
//
//}*/
//@AfterClass
//public static void endTest()
//{
//
//report.endTest(test);
//report.flush();
//}
//}

View File

@ -0,0 +1,50 @@
package com.machint.automation.managers;
import java.util.Properties;
/*
* public String getReportConfigPath(){ Properties properties = null;
*
* @SuppressWarnings("null") String reportConfigPath =
* properties.getProperty("reportConfigPath"); if(reportConfigPath!= null) {
* return reportConfigPath; } return reportConfigPath;
*
*
* }
*/
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class ConfigFileReader {
private Properties properties;
private final String propertyFilePath = "src//test//resources//configs//Configuration.properties";
public ConfigFileReader() {
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(propertyFilePath));
properties = new Properties();
try {
properties.load(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new RuntimeException("Configuration.properties not found at " + propertyFilePath);
}
}
public String getReportConfigPath() {
String reportConfigPath = properties.getProperty("reportConfigPath");
if (reportConfigPath != null) return reportConfigPath;
else throw new RuntimeException("Report Config Path not specified in the Configuration.properties");
}
}

View File

@ -0,0 +1,67 @@
package com.machint.automation.managers;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.aventstack.extentreports.ExtentReports;
import com.aventstack.extentreports.reporter.ExtentHtmlReporter;
import com.aventstack.extentreports.reporter.configuration.ChartLocation;
import com.aventstack.extentreports.reporter.configuration.Theme;
public class ExtentManager {
public static final String FILE_LOCATION = "MAF";
private static String timestamp1 = new SimpleDateFormat("yyyy_MM_dd__hh_mm_ss").format(new Date());
private static ExtentReports extent;
private static String reportFileName = "Test-Automaton-Report.html";
private static String fileSeperator = System.getProperty("file.separator");
private static String reportFilepath = FILE_LOCATION +fileSeperator+ "TestReport";
private static String reportFileLocation = reportFilepath +fileSeperator+ reportFileName;
public static ExtentReports getInstance() {
if (extent == null)
createInstance();
return extent;
}
//Create an extent report instance
public static ExtentReports createInstance() {
String fileName = getReportPath(reportFilepath);
ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(fileName);
htmlReporter.config().setTestViewChartLocation(ChartLocation.BOTTOM);
htmlReporter.config().setChartVisibilityOnOpen(true);
htmlReporter.config().setTheme(Theme.STANDARD);
htmlReporter.config().setDocumentTitle(reportFileName);
htmlReporter.config().setEncoding("utf-8");
htmlReporter.config().setReportName(reportFileName);
htmlReporter.config().setTimeStampFormat("EEEE, MMMM dd, yyyy, hh:mm a '('zzz')'");
extent = new ExtentReports();
extent.attachReporter(htmlReporter);
//Set environment details
extent.setSystemInfo("OS", "Windows");
extent.setSystemInfo("AUT", "QA");
return extent;
}
//Create the report path
private static String getReportPath (String path) {
File testDirectory = new File(path);
if (!testDirectory.exists()) {
if (testDirectory.mkdir()) {
System.out.println("Directory: " + path + " is created!" );
return reportFileLocation;
} else {
System.out.println("Failed to create directory: " + path);
return System.getProperty("user.dir");
}
} else {
System.out.println("Directory already exists: " + path);
}
return reportFileLocation;
}
}

View File

@ -0,0 +1,26 @@
package com.machint.automation.managers;
import java.util.HashMap;
import java.util.Map;
import com.aventstack.extentreports.ExtentReports;
import com.aventstack.extentreports.ExtentTest;
public class ExtentTestManager {
static Map<Integer, ExtentTest> extentTestMap = new HashMap<Integer, ExtentTest>();
static ExtentReports extent = ExtentManager.getInstance();
public static synchronized ExtentTest getTest() {
return (ExtentTest) extentTestMap.get((int) (long) (Thread.currentThread().getId()));
}
public static synchronized void endTest() {
extent.flush();
}
public static synchronized ExtentTest startTest(String testName) {
ExtentTest test = extent.createTest(testName);
extentTestMap.put((int) (long) (Thread.currentThread().getId()), test);
return test;
}
}

View File

@ -0,0 +1,16 @@
package com.machint.automation.managers;
public class FileReaderManager {
private static FileReaderManager fileReaderManager = new FileReaderManager();
private static ConfigFileReader configFileReader;
private FileReaderManager() {}
public static FileReaderManager getInstance() {
return fileReaderManager;
}
public ConfigFileReader getConfigReader() {
return (configFileReader == null) ? new ConfigFileReader() : configFileReader;
}
}

View File

@ -0,0 +1,88 @@
package com.machint.automation.managers;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
import com.aventstack.extentreports.Status;
import com.machint.automation.base.BaseClass;
public class TestListener extends BaseClass implements ITestListener
{
public void onStart(ITestContext context)
{
System.out.println("*** Test Suite " + context.getName() + " started ***");
}
public void onFinish(ITestContext context)
{
System.out.println(("*** Test Suite " + context.getName() + " ending ***"));
ExtentTestManager.endTest();
ExtentManager.getInstance().flush();
}
public void onTestStart(ITestResult result) {
System.out.println(("*** Running test method " + result.getMethod().getMethodName() + "..."));
ExtentTestManager.startTest(result.getMethod().getMethodName());
}
public void onTestSuccess(ITestResult result)
{
System.out.println("*** Executed " + result.getMethod().getMethodName() + " test successfully...");
ExtentTestManager.getTest().log(Status.PASS, "Test passed");
}
/*
* @Override public void onTestFailure(ITestResult result) {
* System.out.println("***** Error "+result.getName()+" test has failed *****");
* String methodName=result.getName().toString().trim(); ITestContext context =
* result.getTestContext(); WebDriver driver =
* (WebDriver)context.getAttribute("driver"); takeScreenShot(methodName,
* driver); }
*
* public void takeScreenShot(String methodName, WebDriver driver) { File
* scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); //The
* below method will save the screen shot in d drive with test method name try {
* FileUtils.copyFile(scrFile, new File(filePath+methodName+".png"));
* System.out.println("***Placed screen shot in "+filePath+" ***"); } catch
* (IOException e) { e.printStackTrace(); } }
*/
public void onTestFailure(ITestResult result)
{
System.out.println("*** Test execution " + result.getMethod().getMethodName() + " failed...");
ExtentTestManager.getTest().log(Status.FAIL, "Test Failed");
try
{
TakesScreenshot screenshot=(TakesScreenshot)driver;
File src=screenshot.getScreenshotAs(OutputType.FILE);
String timestamp = new SimpleDateFormat("yyyy_MM_dd__hh_mm_ss").format(new Date());
FileUtils.copyFile(src, new File("MAF/ScreenShot /"+result.getName()+timestamp+".png"));
System.out.println("Successfully captured a screenshot");
}
catch (Exception e)
{
System.out.println("Exception while taking screenshot "+e.getMessage());
}
}
public void onTestSkipped(ITestResult result)
{
System.out.println("*** Test " + result.getMethod().getMethodName() + " skipped...");
ExtentTestManager.getTest().log(Status.SKIP, "Test Skipped");
}
public void onTestFailedButWithinSuccessPercentage(ITestResult result)
{
System.out.println("*** Test failed but within percentage % " + result.getMethod().getMethodName());
}
}

View File

@ -0,0 +1,41 @@
package com.machint.automation.model;
public class FormObject {
private String environment;
private String browser;
private String product;
private String testCase;
public String getEnvironment() {
return environment;
}
public void setEnvironment(String environment) {
this.environment = environment;
}
public String getBrowser() {
return browser;
}
public void setBrowser(String browser) {
this.browser = browser;
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public String getTestCase() {
return testCase;
}
public void setTestCase(String testCase) {
this.testCase = testCase;
}
@Override
public String toString() {
return "FormObject [environment=" + environment + ", browser=" + browser + ", product=" + product
+ ", testCase=" + testCase + "]";
}
}

View File

@ -0,0 +1,5 @@
#spring.main.web-application-type=none
server.port=8093
#spring.resources.static-locations=D:/Dev/mautomation/test-output
local.file.path=D:/M_Automation/MAF
server.servlet.context-path=/mautomation

View File

@ -0,0 +1,91 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://kit.fontawesome.com/64d58efce2.js" crossorigin="anonymous"></script>
<script src="jquery-3.5.1.min.js"></script>
<link rel="stylesheet" href="style.css" />
<style type="text/css">
</style>
<title>Automation Test</title>
</head>
<body>
<div class="container">
<div class="forms-container">
<div class="signin-signup">
<form method="POST" enctype="multipart/form-data" id="fileUploadForm" class="sign-in-form">
<h2 class="title">Automation Test Run</h2>
<label for="file">Select Test Data file</label>
<div class="input-field">
<i class="fas fa-upload"></i>
<input type="file" class="form-control" id="uploadfile" placeholder="Upload File" name="file"></input>
</div>
<button type="submit" class="btn solid" id="btnSubmit">Upload and Run Test</button>
<div>
<a href="http://localhost:8092/get_excel_report">Get Test Report</a>
</div>
</form>
</div>
<div id="overlay">
<div class="cv-spinner">
<span class="spinner"></span>
</div>
</div>
</div>
<div class="panels-container">
<div class="panel left-panel">
<img src="img/log.svg" class="image" alt="" />
</div>
</div>
</div>
<script type="text/javascript">
jQuery(function($){
$(document).ajaxSend(function() {
$("#overlay").fadeIn(300); 
});
$('#btnSubmit').click(function(event){
event.preventDefault();
var form = $('#fileUploadForm')[0];
var data = new FormData(form);
$("#btnSubmit").prop("disabled", true);
$.ajax({
type: 'POST',
enctype: 'multipart/form-data',
url: '/run_excel',
data: data,
//http://api.jquery.com/jQuery.ajax/
//https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
processData: false, //prevent jQuery from automatically transforming the data into a query string
contentType: false,
cache: false,
timeout: 600000,
success: function(data){
alert(data);
$("#btnSubmit").prop("disabled", false);
},
error: function (e) {
alert(e.responseText);
console.log("ERROR : ", e);
$("#btnSubmit").prop("disabled", false);
}
}).done(function() {
setTimeout(function(){
$("#overlay").fadeOut(300);
//window.location.replace("http://localhost");
},500);
});
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,170 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Automation Testing</title>
<script src="jquery-3.5.1.min.js"></script>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<h2 class="title">Automation Test</h2>
<form enctype="application/x-www-form-urlencoded" method="POST" id="#testForm" action="#">
<div class="row">
<div class="col-25">
<label for="browser">Browser</label>
</div>
<div class="col-75">
<select name="browser" id="browserSelect">
<option value="Chrome">Chrome</option>
<option value="InternetExplorer">Internet Explorer</option>
<option value="Firefox">Firefox</option>
</select>
</div>
</div>
<div class="row">
<div class="col-25">
<label for="product">Product</label>
</div>
<div class="col-75">
<select name="product" id="productSelect">
<option value="">Please Select Product</option>
<option value="mwid">MWID</option>
<option value="parthanon">Parthanon</option>
</select>
</div>
</div>
<div class="row">
<div class="col-25">
<label for="environment">Select Environment</label>
</div>
<div class="col-75">
<select name="environment" id="envSelect">
<option value="http://104.211.74.54:8080/MWID/login">(http://104.211.74.54:8080/MWID/login)</option>
<option value="https://rainbowtest.appiancloud.com/suite/sites/parthenon">(https://rainbowtest.appiancloud.com/suite/sites/parthenon)</option>
</select>
</div>
</div>
<div class="row">
<div class="col-25">
<label for="testCase">Select Test Case</label>
</div>
<div class="col-75">
<select name="testCase" id="testCaseSelect">
<!-- <option value="HR_login_Testng.xml">HR_login_Testng.xml</option>
<option value="Insurance.xml">Insurance.xml</option>
<option value="pTestNG.xml">pTestNG.xml</option>
<option value="Registration_Testng.xml">Registration_Testng.xml</option> -->
</select>
</div>
</div>
<div class="row">
<input type="submit" value="Submit" id="btnSubmit">
</div>
<div class="row">
<a href="https://apps.machint.com/mautomation/get_xml_report">Get Test Report</a>
</div>
</form>
<div id="overlay">
<div class="cv-spinner">
<span class="spinner"></span>
</div>
</div>
</div>
<script type="text/javascript">
jQuery(function($){
var environments = {
parthanon: 'https://rainbowtest.appiancloud.com/suite/sites/parthenon',
mwid: 'http://104.211.74.54:8080/MWID/login'
}
var testCases = {
mwid: 'HR_login_Testng.xml',
parthanon: 'Insurance.xml'
}
$("#productSelect").change(function () {
var productVal = this.value;
$('#testCaseSelect').empty();
$('#envSelect').empty();
$('#testCaseSelect').append(
$('<option></option>').val(testCases[productVal]).html(testCases[productVal])
);
$('#envSelect').append(
$('<option></option>').val(environments[productVal]).html(environments[productVal])
);
//$('#testCaseSelect').find('option[value="'+environments[productVal]+'"]').attr('selected','selected')
//$('#testCaseSelect').val(environments[productVal]);
});
$(document).ajaxSend(function() {
$("#overlay").fadeIn(300); 
});
/* attach a submit handler to the form */
$('#btnSubmit').click(function(event){
/* stop form from submitting normally */
event.preventDefault();
;
/* Send the data using post with element id name and name2*/
var runTestAjax = $.post('run_test', {
browser: $('#browserSelect').val(),
product: $('#productSelect').val(),
environment: $('#envSelect').val(),
testCase: $('#testCaseSelect').val()
});
/* Alerts the results */
runTestAjax.done(function(data) {
alert(data);
setTimeout(function(){
$("#overlay").fadeOut(300);
},500);
});
runTestAjax.fail(function() {
alert('Error Occured in Running Test');
$("#overlay").fadeOut(300);
});
});
/*$('#btnSubmit').click(function(event){
event.preventDefault();
var form = $('#testForm')[0];
var data = new FormData(form);
alert(data);
$("#btnSubmit").prop("disabled", true);
$.ajax({
type: 'POST',
url: '/run_test',
data: data,
//http://api.jquery.com/jQuery.ajax/
//https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
processData: false, //prevent jQuery from automatically transforming the data into a query string
contentType: 'application/x-www-form-urlencoded',
cache: false,
timeout: 600000,
success: function(data){
alert(data);
$("#btnSubmit").prop("disabled", false);
},
error: function (e) {
alert(e.responseText);
console.log("ERROR : ", e);
$("#btnSubmit").prop("disabled", false);
}
}).done(function() {
setTimeout(function(){
$("#overlay").fadeOut(300);
//window.location.replace("http://localhost");
},500);
});
}); */
});
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,105 @@
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700;800&display=swap");
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body,
input {
font-family: "Poppins", sans-serif;
}
/* Style inputs, select elements and textareas */
input[type=text], select, textarea{
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
resize: vertical;
}
/* Style the label to display next to the inputs */
label {
padding: 12px 12px 12px 0;
display: inline-block;
}
/* Style the submit button */
input[type=submit] {
background-color: #4CAF50;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
float: right;
}
/* Style the container */
.container {
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
/* Floating column for labels: 25% width */
.col-25 {
float: left;
width: 25%;
margin-top: 6px;
}
/* Floating column for inputs: 75% width */
.col-75 {
float: left;
width: 75%;
margin-top: 6px;
}
/* Clear floats after the columns */
.row:after {
content: "";
display: table;
clear: both;
}
/* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */
@media screen and (max-width: 600px) {
.col-25, .col-75, input[type=submit] {
width: 100%;
margin-top: 0;
}
}
#overlay{
position: fixed;
top: 0;
z-index: 100;
width: 100%;
height:100%;
display: none;
background: rgba(0,0,0,0.6);
}
.cv-spinner {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.spinner {
width: 40px;
height: 40px;
border: 4px #ddd solid;
border-top: 4px #2e93e6 solid;
border-radius: 50%;
animation: sp-anime 0.8s infinite linear;
}
@keyframes sp-anime {
100% {
transform: rotate(360deg);
}
}
.is-hide{
display:none;
}