diff --git a/ui-test/Biometric Devices/Face/DeviceDiscovery.json b/ui-test/Biometric Devices/Face/DeviceDiscovery.json
new file mode 100644
index 000000000..b5ca41591
--- /dev/null
+++ b/ui-test/Biometric Devices/Face/DeviceDiscovery.json
@@ -0,0 +1,17 @@
+{
+ "deviceId":"3",
+ "deviceStatus":"Ready",
+ "certification":"L0",
+ "serviceVersion":"0.9.5",
+ "deviceSubId":[
+ "0"
+ ],
+ "callbackId":"",
+ "digitalId":"",
+ "deviceCode": "b692b595-3523-face-99fc-bd76e35f190f",
+ "specVersion":[
+ "0.9.5"
+ ],
+ "purpose":"",
+ "error":null
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Face/DeviceInfo.json b/ui-test/Biometric Devices/Face/DeviceInfo.json
new file mode 100644
index 000000000..e8e4d59ce
--- /dev/null
+++ b/ui-test/Biometric Devices/Face/DeviceInfo.json
@@ -0,0 +1,18 @@
+{
+ "deviceStatus": "Ready",
+ "deviceId": "3",
+ "firmware": "MOSIP.FACE.1.0.0.0",
+ "certification": "L0",
+ "serviceVersion": "0.9.5",
+ "deviceSubId":[
+ "0"
+ ],
+ "callbackId":"",
+ "digitalId": "",
+ "deviceCode": "b692b595-3523-face-99fc-bd76e35f190f",
+ "env": "Staging",
+ "purpose": "",
+ "specVersion": [
+ "0.9.5"
+ ]
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Face/DigitalId.json b/ui-test/Biometric Devices/Face/DigitalId.json
new file mode 100644
index 000000000..a041adf73
--- /dev/null
+++ b/ui-test/Biometric Devices/Face/DigitalId.json
@@ -0,0 +1,10 @@
+{
+ "serialNo":"2345678901",
+ "make":"MOSIP",
+ "model":"FACE01",
+ "type":"Face",
+ "deviceSubType":"Full face",
+ "deviceProvider":"MOSIP",
+ "deviceProviderId":"MOSIP.PROXY.SBI",
+ "dateTime":""
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Face/Stream Image/0.jpeg b/ui-test/Biometric Devices/Face/Stream Image/0.jpeg
new file mode 100644
index 000000000..1fa782a7d
Binary files /dev/null and b/ui-test/Biometric Devices/Face/Stream Image/0.jpeg differ
diff --git a/ui-test/Biometric Devices/Finger/Single/DeviceDiscovery.json b/ui-test/Biometric Devices/Finger/Single/DeviceDiscovery.json
new file mode 100644
index 000000000..142a5aaed
--- /dev/null
+++ b/ui-test/Biometric Devices/Finger/Single/DeviceDiscovery.json
@@ -0,0 +1,17 @@
+{
+ "deviceId":"4",
+ "deviceStatus":"Ready",
+ "certification":"L0",
+ "serviceVersion":"0.9.5",
+ "deviceSubId":[
+ "0"
+ ],
+ "callbackId":"",
+ "digitalId":"",
+ "deviceCode": "b692b595-3523-slap-99fc-bd76e35f290f",
+ "specVersion":[
+ "0.9.5"
+ ],
+ "purpose":"",
+ "error":null
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Finger/Single/DeviceInfo.json b/ui-test/Biometric Devices/Finger/Single/DeviceInfo.json
new file mode 100644
index 000000000..707064134
--- /dev/null
+++ b/ui-test/Biometric Devices/Finger/Single/DeviceInfo.json
@@ -0,0 +1,18 @@
+{
+ "deviceStatus": "Ready",
+ "deviceId": "4",
+ "firmware": "MOSIP.SINGLE.1.0.0.0",
+ "certification": "L0",
+ "serviceVersion": "0.9.5",
+ "deviceSubId":[
+ "0"
+ ],
+ "callbackId":"",
+ "digitalId": "",
+ "deviceCode": "b692b595-3523-slap-99fc-bd76e35f290f",
+ "env": "Staging",
+ "purpose": "",
+ "specVersion": [
+ "0.9.5"
+ ]
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Finger/Single/DigitalId.json b/ui-test/Biometric Devices/Finger/Single/DigitalId.json
new file mode 100644
index 000000000..477301245
--- /dev/null
+++ b/ui-test/Biometric Devices/Finger/Single/DigitalId.json
@@ -0,0 +1,10 @@
+{
+ "serialNo":"1234567990",
+ "make":"MOSIP",
+ "model":"SINGLE01",
+ "type":"Finger",
+ "deviceSubType":"Single",
+ "deviceProvider":"MOSIP",
+ "deviceProviderId":"MOSIP.PROXY.SBI",
+ "dateTime":""
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Finger/Slap/DeviceDiscovery.json b/ui-test/Biometric Devices/Finger/Slap/DeviceDiscovery.json
new file mode 100644
index 000000000..37664dc9d
--- /dev/null
+++ b/ui-test/Biometric Devices/Finger/Slap/DeviceDiscovery.json
@@ -0,0 +1,17 @@
+{
+ "deviceId":"2",
+ "deviceStatus":"Ready",
+ "certification":"L0",
+ "serviceVersion":"0.9.5",
+ "deviceSubId":[
+ "1", "2", "3"
+ ],
+ "callbackId":"",
+ "digitalId":"",
+ "deviceCode": "b692b595-3523-slap-99fc-bd76e35f190f",
+ "specVersion":[
+ "0.9.5"
+ ],
+ "purpose":"",
+ "error":null
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Finger/Slap/DeviceInfo.json b/ui-test/Biometric Devices/Finger/Slap/DeviceInfo.json
new file mode 100644
index 000000000..7d9e3eb3a
--- /dev/null
+++ b/ui-test/Biometric Devices/Finger/Slap/DeviceInfo.json
@@ -0,0 +1,18 @@
+{
+ "deviceStatus": "Ready",
+ "deviceId": "2",
+ "firmware": "MOSIP.SLAP.1.0.0.0",
+ "certification": "L0",
+ "serviceVersion": "0.9.5",
+ "deviceSubId":[
+ "1", "2", "3"
+ ],
+ "callbackId":"",
+ "digitalId": "",
+ "deviceCode": "b692b595-3523-slap-99fc-bd76e35f190f",
+ "env": "Staging",
+ "purpose": "",
+ "specVersion": [
+ "0.9.5"
+ ]
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Finger/Slap/DigitalId.json b/ui-test/Biometric Devices/Finger/Slap/DigitalId.json
new file mode 100644
index 000000000..759794b80
--- /dev/null
+++ b/ui-test/Biometric Devices/Finger/Slap/DigitalId.json
@@ -0,0 +1,10 @@
+{
+ "serialNo":"1234567890",
+ "make":"MOSIP",
+ "model":"SLAP01",
+ "type":"Finger",
+ "deviceSubType":"Slap",
+ "deviceProvider":"MOSIP",
+ "deviceProviderId":"MOSIP.PROXY.SBI",
+ "dateTime":""
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Finger/Slap/Stream Image/1.jpeg b/ui-test/Biometric Devices/Finger/Slap/Stream Image/1.jpeg
new file mode 100644
index 000000000..b9d93bc29
Binary files /dev/null and b/ui-test/Biometric Devices/Finger/Slap/Stream Image/1.jpeg differ
diff --git a/ui-test/Biometric Devices/Finger/Slap/Stream Image/2.jpeg b/ui-test/Biometric Devices/Finger/Slap/Stream Image/2.jpeg
new file mode 100644
index 000000000..faf47323f
Binary files /dev/null and b/ui-test/Biometric Devices/Finger/Slap/Stream Image/2.jpeg differ
diff --git a/ui-test/Biometric Devices/Finger/Slap/Stream Image/3.jpeg b/ui-test/Biometric Devices/Finger/Slap/Stream Image/3.jpeg
new file mode 100644
index 000000000..e2d0fb6c9
Binary files /dev/null and b/ui-test/Biometric Devices/Finger/Slap/Stream Image/3.jpeg differ
diff --git a/ui-test/Biometric Devices/Iris/Double/DeviceDiscovery.json b/ui-test/Biometric Devices/Iris/Double/DeviceDiscovery.json
new file mode 100644
index 000000000..3b947d241
--- /dev/null
+++ b/ui-test/Biometric Devices/Iris/Double/DeviceDiscovery.json
@@ -0,0 +1,17 @@
+{
+ "deviceId":"1",
+ "deviceStatus":"Ready",
+ "certification":"L0",
+ "serviceVersion":"0.9.5",
+ "deviceSubId":[
+ "1", "2", "3"
+ ],
+ "callbackId":"",
+ "digitalId":"",
+ "deviceCode": "b692b595-3523-iris-99fc-bd76e35f190f",
+ "specVersion":[
+ "0.9.5"
+ ],
+ "purpose":"",
+ "error":null
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Iris/Double/DeviceInfo.json b/ui-test/Biometric Devices/Iris/Double/DeviceInfo.json
new file mode 100644
index 000000000..e7b08d1ef
--- /dev/null
+++ b/ui-test/Biometric Devices/Iris/Double/DeviceInfo.json
@@ -0,0 +1,18 @@
+{
+ "deviceStatus": "Ready",
+ "deviceId": "1",
+ "firmware": "MOSIP.IRIS.1.0.0.0",
+ "certification": "L0",
+ "serviceVersion": "0.9.5",
+ "deviceSubId":[
+ "1", "2", "3"
+ ],
+ "callbackId":"",
+ "digitalId": "",
+ "deviceCode": "b692b595-3523-iris-99fc-bd76e35f190f",
+ "env": "Staging",
+ "purpose": "",
+ "specVersion": [
+ "0.9.5"
+ ]
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Iris/Double/DigitalId.json b/ui-test/Biometric Devices/Iris/Double/DigitalId.json
new file mode 100644
index 000000000..eb100965e
--- /dev/null
+++ b/ui-test/Biometric Devices/Iris/Double/DigitalId.json
@@ -0,0 +1,10 @@
+{
+ "serialNo":"3456789012",
+ "make":"MOSIP",
+ "model":"IRIS01",
+ "type":"Iris",
+ "deviceSubType":"Double",
+ "deviceProvider":"MOSIP",
+ "deviceProviderId":"MOSIP.PROXY.SBI",
+ "dateTime":""
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Iris/Double/Stream Image/1.jpeg b/ui-test/Biometric Devices/Iris/Double/Stream Image/1.jpeg
new file mode 100644
index 000000000..b4d108386
Binary files /dev/null and b/ui-test/Biometric Devices/Iris/Double/Stream Image/1.jpeg differ
diff --git a/ui-test/Biometric Devices/Iris/Double/Stream Image/2.jpeg b/ui-test/Biometric Devices/Iris/Double/Stream Image/2.jpeg
new file mode 100644
index 000000000..485712ef4
Binary files /dev/null and b/ui-test/Biometric Devices/Iris/Double/Stream Image/2.jpeg differ
diff --git a/ui-test/Biometric Devices/Iris/Double/Stream Image/3.jpeg b/ui-test/Biometric Devices/Iris/Double/Stream Image/3.jpeg
new file mode 100644
index 000000000..8691a9460
Binary files /dev/null and b/ui-test/Biometric Devices/Iris/Double/Stream Image/3.jpeg differ
diff --git a/ui-test/Biometric Devices/Iris/Single/DeviceDiscovery.json b/ui-test/Biometric Devices/Iris/Single/DeviceDiscovery.json
new file mode 100644
index 000000000..93510c8c4
--- /dev/null
+++ b/ui-test/Biometric Devices/Iris/Single/DeviceDiscovery.json
@@ -0,0 +1,17 @@
+{
+ "deviceId":"5",
+ "deviceStatus":"Ready",
+ "certification":"L0",
+ "serviceVersion":"0.9.5",
+ "deviceSubId":[
+ "0"
+ ],
+ "callbackId":"",
+ "digitalId":"",
+ "deviceCode": "b692b595-3523-iris-99fc-bd76e35fff8",
+ "specVersion":[
+ "0.9.5"
+ ],
+ "purpose":"",
+ "error":null
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Iris/Single/DeviceInfo.json b/ui-test/Biometric Devices/Iris/Single/DeviceInfo.json
new file mode 100644
index 000000000..0fecb5d66
--- /dev/null
+++ b/ui-test/Biometric Devices/Iris/Single/DeviceInfo.json
@@ -0,0 +1,18 @@
+{
+ "deviceStatus": "Ready",
+ "deviceId": "5",
+ "firmware": "MOSIP.IRIS.2.0.0.0",
+ "certification": "L0",
+ "serviceVersion": "0.9.5",
+ "deviceSubId":[
+ "0"
+ ],
+ "callbackId":"",
+ "digitalId": "",
+ "deviceCode": "b692b595-3523-iris-99fc-bd76e35fff8",
+ "env": "Staging",
+ "purpose": "",
+ "specVersion": [
+ "0.9.5"
+ ]
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/Iris/Single/DigitalId.json b/ui-test/Biometric Devices/Iris/Single/DigitalId.json
new file mode 100644
index 000000000..b2d91c8d8
--- /dev/null
+++ b/ui-test/Biometric Devices/Iris/Single/DigitalId.json
@@ -0,0 +1,10 @@
+{
+ "serialNo":"3456789099",
+ "make":"MOSIP",
+ "model":"IRIS02",
+ "type":"Iris",
+ "deviceSubType":"Single",
+ "deviceProvider":"MOSIP",
+ "deviceProviderId":"MOSIP.PROXY.SBI",
+ "dateTime":""
+}
\ No newline at end of file
diff --git a/ui-test/Biometric Devices/rootca.cer b/ui-test/Biometric Devices/rootca.cer
new file mode 100644
index 000000000..dfaf87e47
--- /dev/null
+++ b/ui-test/Biometric Devices/rootca.cer
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDPzCCAiegAwIBAgIEYCFEgjANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJJ
+TjESMBAGA1UECAwJS2FybmF0YWthMQ4wDAYDVQQKDAVNb3NpcDEOMAwGA1UECwwF
+TW9zaXAxDzANBgNVBAMMBlJvb3RDQTAeFw0yMTAyMDgxNDAyNDJaFw0zMTAyMDgx
+NDAyNDJaMFIxCzAJBgNVBAYTAklOMRIwEAYDVQQIDAlLYXJuYXRha2ExDjAMBgNV
+BAoMBU1vc2lwMQ4wDAYDVQQLDAVNb3NpcDEPMA0GA1UEAwwGUm9vdENBMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz9kaCs4Yrh2mMFx/wGV42Tn7vM9d
+t2au3JOWu/fbeaNk8/TgNEA1GrVerqagcRDDo+6jBDbX7XO9iRHX1wmIcVkH7osa
+cMKGfYzZbvkWjGFRCam10xLGyczSeDiIIj+H3eLXzTP0iZBcVyw40EMLWk7BHld+
+eFY1XS+EDPIv6snjIxWDEd+wND1tOvWgPsS7mYy8Mn9QRYZXH9KW8/nW0bf/Z74U
+d89PtXl3WSSrrRZSQofGDwM5RPOEzrYcurZowwWLWmgAmvcsATxhOAiKe6e6tvbD
+yXTC8+9CRv22zGTcasI5QOYzGaj6wMKr9h2WgAY1LJFBIkEjf1ykWGlTbQIDAQAB
+ox0wGzAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOC
+AQEAzWge0dKje1/opIyiho0e6p6a/M/UD05bNLg7XD6uMqJAT9C1YTwq77OD0nrc
+ZpMQoQ4zCFEbGoPvHWzW0Isc7Y3F40YI8bQdmEQtJuiqsCUQ8XW3b4YDTH6VM5go
++VZgoRucIRBwCAss1tMrxjT3lMWwuyA9DaOkryRW/m9QmlLoTWLQabi/pO+FS+oy
+WYYxJOzvqC3xUTYHi+DzlLSWR08NE7gdHrD4aAHYLPIyzgVuToztB7PYmbuOnKmS
+M9sHlKqgpN7/AgvTOFOEX5mi5BcPGKagryTfipwLVyWaQBDCcVNkAtoLTYPCTEAj
+UhONf7GpbeehitYjHQoknr21EA==
+-----END CERTIFICATE-----
diff --git a/ui-test/Biometric Devices/rootcaftm.cer b/ui-test/Biometric Devices/rootcaftm.cer
new file mode 100644
index 000000000..ac57e8ba9
--- /dev/null
+++ b/ui-test/Biometric Devices/rootcaftm.cer
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDeTCCAmGgAwIBAgIEYMHynDANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJJ
+TjESMBAGA1UECAwJS2FybmF0YWthMRIwEAYDVQQHDAlCYW5nYWxvcmUxETAPBgNV
+BAoMCG1vc2lwLmlvMREwDwYDVQQLDAhtb3NpcC5pbzESMBAGA1UEAwwJUm9vdENB
+RlRNMB4XDTIxMDYxMDExMDgxMloXDTIyMDYxMDExMDgxMlowbzELMAkGA1UEBhMC
+SU4xEjAQBgNVBAgMCUthcm5hdGFrYTESMBAGA1UEBwwJQmFuZ2Fsb3JlMREwDwYD
+VQQKDAhtb3NpcC5pbzERMA8GA1UECwwIbW9zaXAuaW8xEjAQBgNVBAMMCVJvb3RD
+QUZUTTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3FfxvirIiPH6YF
+X4GR1z7LOI8tiwvfqjAFba6p4vMHs0xNu0TWJ9GS3qlDglmWczm3hgHndWD3rIUQ
+V4fMsQDapA0giFVMxushm8u9JYl2HXwtVgrXUeKEdVS3zpWf2qQCXK9vQAOHvhhu
+UMWVzL4yxd1RwUGjuSjM/pZqa/Tq0aDfqFVZ/MckxSvieEKEYODtcxXA708SQ07I
+aFDZ2gKTD4aYUlCed9fAois+ko06tzqS1kerMiORzZExtUY/hwx2UrLVUBFYTBqW
+Wuw0N2VjsaifQAti0JJGYPCBqM2Q7OctIvccAjghHYxCXj+yNRtOm8ooNZTefMJr
+fCY9OucCAwEAAaMdMBswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wDQYJKoZI
+hvcNAQELBQADggEBAEQJMIT958jm1e5sCctUcOoHLQVdM9f3NLKicCUCjVMNCDjg
+DbkoL72rlktTDbzi4AizaBXwxQdB951SG4Vjbc5tSC3WzB7d8QMiLRwG14Q165Gw
+VGuMMOpJn4jlMzJMhhP67vJ4hYI2Op4eDAPH3HCods/Ew4JJ/edwpJ80tLKiB0f6
+fnyPXxPUSMtkLCCpp2/zf1OkXmUT8dIgU27R9+/8x/ZphDVJcc00XrgM4VI1dX+W
+8W8Ua6GlQSL83HIqVudnFAmCDF0dRX//ghUOeJwWEMgcm/cUNTZv6hZjmDpVeout
+E1o6hXGXWRnaDU9/QGpi2BuiSgREOarAQf62sPI=
+-----END CERTIFICATE-----
diff --git a/ui-test/application.properties b/ui-test/application.properties
new file mode 100644
index 000000000..8e2d92cc1
--- /dev/null
+++ b/ui-test/application.properties
@@ -0,0 +1,143 @@
+server.minport=4501
+server.maxport=4600
+server.serveripaddress=127.0.0.1
+cors.headers.allowed.methods="OPTIONS, RCAPTURE, CAPTURE, MOSIPDINFO, MOSIPDISC, STREAM, GET, POST"
+cors.headers.allowed.origin="*"
+
+mosip.mock.sbi.allowed.admin.apis="admin/score, admin/delay, admin/status, admin/profile"
+mosip.mock.sbi.quality.score=94
+mosip.mock.sbi.device.purpose.registration=Registration
+mosip.mock.sbi.device.purpose.auth=Auth
+
+mosip.mock.sbi.biometric.type.biometricdevice=Biometric Device
+mosip.mock.sbi.biometric.type.finger=Finger
+mosip.mock.sbi.biometric.type.face=Face
+mosip.mock.sbi.biometric.type.iris=Iris
+
+mosip.mock.sbi.biometric.subtype.finger.slap=Slap
+mosip.mock.sbi.biometric.subtype.finger.single=Single
+mosip.mock.sbi.biometric.subtype.finger.touchless=Touchless
+mosip.mock.sbi.biometric.subtype.face=Full face
+mosip.mock.sbi.biometric.subtype.iris.single=Single
+mosip.mock.sbi.biometric.subtype.iris.double=Double
+
+mosip.mock.sbi.biometric.seed.finger=99
+mosip.mock.sbi.biometric.seed.face=3
+mosip.mock.sbi.biometric.seed.iris=999
+
+mosip.mock.sbi.file.face.digitalid.json=/Biometric Devices/Face/DigitalId.json
+mosip.mock.sbi.file.face.deviceinfo.json=/Biometric Devices/Face/DeviceInfo.json
+mosip.mock.sbi.file.face.devicediscovery.json=/Biometric Devices/Face/DeviceDiscovery.json
+mosip.mock.sbi.file.face.streamimage=/Biometric Devices/Face/Stream Image/0.jpeg
+mosip.mock.sbi.file.face.keys.keystorefilename=/device-dsk-partner.p12
+mosip.mock.sbi.file.face.keys.keyalias=keyalias
+mosip.mock.sbi.file.face.keys.keystorepwd=qwerty@123
+mosip.mock.sbi.file.face.keys.keystorefilename.ftm=/Biometric Devices/Face/Keys/mosipfaceftm.p12
+mosip.mock.sbi.file.face.keys.keyalias.ftm=mosipfaceftm
+mosip.mock.sbi.file.face.keys.keystorepwd.ftm=mosipfaceftm
+mosip.mock.sbi.file.face.keys.encryption=/Biometric Devices/Face/Keys/mosip-ida.cer
+
+mosip.mock.sbi.file.finger.slap.digitalid.json=/Biometric Devices/Finger/Slap/DigitalId.json
+mosip.mock.sbi.file.finger.slap.deviceinfo.json=/Biometric Devices/Finger/Slap/DeviceInfo.json
+mosip.mock.sbi.file.finger.slap.devicediscovery.json=/Biometric Devices/Finger/Slap/DeviceDiscovery.json
+mosip.mock.sbi.file.finger.slap.streamimage.left=/Biometric Devices/Finger/Slap/Stream Image/1.jpeg
+mosip.mock.sbi.file.finger.slap.streamimage.right=/Biometric Devices/Finger/Slap/Stream Image/2.jpeg
+mosip.mock.sbi.file.finger.slap.streamimage.thumb=/Biometric Devices/Finger/Slap/Stream Image/3.jpeg
+mosip.mock.sbi.file.finger.slap.keys.keystorefilename=/device-dsk-partner.p12
+mosip.mock.sbi.file.finger.slap.keys.keyalias=keyalias
+mosip.mock.sbi.file.finger.slap.keys.keystorepwd=qwerty@123
+mosip.mock.sbi.file.finger.slap.keys.keystorefilename.ftm=/Biometric Devices/Finger/Slap/Keys/mosipfingerslapftm.p12
+mosip.mock.sbi.file.finger.slap.keys.keyalias.ftm=mosipfingerslapftm
+mosip.mock.sbi.file.finger.slap.keys.keystorepwd.ftm=mosipfingerslapftm
+mosip.mock.sbi.file.finger.slap.keys.encryption=/Biometric Devices/Finger/Slap/Keys/mosip-ida.cer
+
+mosip.mock.sbi.file.iris.double.digitalid.json=/Biometric Devices/Iris/Double/DigitalId.json
+mosip.mock.sbi.file.iris.double.deviceinfo.json=/Biometric Devices/Iris/Double/DeviceInfo.json
+mosip.mock.sbi.file.iris.double.devicediscovery.json=/Biometric Devices/Iris/Double/DeviceDiscovery.json
+#mosip.mock.sbi.file.iris.double.streamimage.both=/Biometric Devices/Iris/Double/Stream Image/1.jpeg
+#mosip.mock.sbi.file.iris.double.streamimage.left=/Biometric Devices/Iris/Double/Stream Image/2.jpeg
+#mosip.mock.sbi.file.iris.double.streamimage.right=/Biometric Devices/Iris/Double/Stream Image/3.jpeg
+mosip.mock.sbi.file.iris.double.keys.keystorefilename=/device-dsk-partner.p12
+mosip.mock.sbi.file.iris.double.keys.keyalias=keyalias
+mosip.mock.sbi.file.iris.double.keys.keystorepwd=qwerty@123
+mosip.mock.sbi.file.iris.double.keys.keystorefilename.ftm=/Biometric Devices/Iris/Double/Keys/mosipirisdoubleftm.p12
+mosip.mock.sbi.file.iris.double.keys.keyalias.ftm=mosipirisdoubleftm
+mosip.mock.sbi.file.iris.double.keys.keystorepwd.ftm=mosipirisdoubleftm
+mosip.mock.sbi.file.iris.double.keys.encryption=/Biometric Devices/Iris/Double/Keys/mosip-ida.cer
+
+mosip.mock.sbi.folder.profile=/resource/Profile
+mosip.mock.sbi.file.folder.default=/resource/Profile/Default
+
+mosip.kernel.crypto.sign-algorithm-name=RS256
+
+mosip.auth.server.url=https://dev.mosip.net/v1/authmanager/authenticate/clientidsecretkey
+mosip.auth.appid=regproc
+mosip.auth.clientid=mosip-regproc-client
+mosip.auth.secretkey=abc123
+
+mosip.ida.server.url=https://extint1.mosip.net/idauthentication/v1/internal/getCertificate?applicationId=IDA&referenceId=IDA-FIR
+
+mds_ERROR_0_msg_en=Success
+
+mds_ERROR_100_msg_en=Device not registered
+mds_ERROR_101_msg_en=Unable to detect a biometric object
+mds_ERROR_102_msg_en=Technical error during extraction
+mds_ERROR_103_msg_en=Device tamper detected
+mds_ERROR_104_msg_en=Unable to connect to management server
+mds_ERROR_105_msg_en=Image orientation error
+mds_ERROR_106_msg_en=Device not found
+mds_ERROR_107_msg_en=Device public key expired
+mds_ERROR_108_msg_en=Domain public key missing
+mds_ERROR_109_msg_en=Requested number of biometric (Finger/IRIS) not supported
+mds_ERROR_110_msg_en=Device is not ready
+mds_ERROR_111_msg_en=Device is busy
+mds_ERROR_112_msg_en=Device Type MisMatch for given deviceId
+mds_ERROR_113_msg_en=Count MisMatch for given deviceType
+mds_ERROR_114_msg_en=Device Type can be only (Finger/Iris/Face)
+
+mds_ERROR_500_msg_en=Invalid URL
+mds_ERROR_501_msg_en=Invalid Type Value in Device Discovery Request
+mds_ERROR_502_msg_en=Biometric Type values must be Biometric Device, Finger, Face, Iris
+mds_ERROR_503_msg_en=Devices are not Connected, please connect devices
+mds_ERROR_504_msg_en=Device Status values must be Ready, Busy, Not Ready, Not Registered
+mds_ERROR_505_msg_en=Quality Score can not be empty and greater than 100 or lesser than 0
+mds_ERROR_506_msg_en=Delay can not empty and lesser than 0 milliseconds
+mds_ERROR_507_msg_en=Method array can contain values only MOSIPDISC, MOSIPDINFO, CAPTURE, STREAM, RCAPTURE
+
+mds_ERROR_551_msg_en=Profile Not Set, please check the profile value
+
+mds_ERROR_601_msg_en=Livestream request can not be done for Auth Devices
+mds_ERROR_604_msg_en=Device Id value not present in Livestream request object
+mds_ERROR_605_msg_en=Device is not connected or not Registered for the deviceId given in Livestream request object
+mds_ERROR_606_msg_en=Device connected purpose should be for Registration only for Livestream
+mds_ERROR_607_msg_en=Device Status is Not Ready or Busy
+mds_ERROR_608_msg_en=Live Stream Image not present
+mds_ERROR_609_msg_en=Live Stream timeout
+mds_ERROR_610_msg_en=Live streaming unknown error
+
+mds_ERROR_700_msg_en=RCapture Failed because Live streaming was stopped
+mds_ERROR_701_msg_en=RCapture Failed because Capture Timeout has happened
+mds_ERROR_702_msg_en=RCapture Failed because Live streaming DeviceId and DeviceSubId different
+mds_ERROR_703_msg_en=RCapture process already in progress, try after sometime
+mds_ERROR_704_msg_en=Device Id value not present in RCapture request object
+mds_ERROR_705_msg_en=Device is not connected or not Registered for the deviceId given in RCapture request object
+mds_ERROR_706_msg_en=Device connected purpose should be for Registration only for RCapture
+mds_ERROR_707_msg_en=BioMetric not present for the given bio subtype
+mds_ERROR_708_msg_en=No BioMetric information present for the given Biotype and BioSubType Id
+mds_ERROR_709_msg_en=RCapture request can not be done for Auth Devices
+mds_ERROR_710_msg_en=RCapture unknown error
+
+mds_ERROR_800_msg_en=Auth Capture Failed
+mds_ERROR_801_msg_en=Auth Capture Failed because Capture Timeout has happened
+mds_ERROR_803_msg_en=Auth Capture process already in progress, try after sometime
+mds_ERROR_804_msg_en=Device Id value not present in Auth Capture request object
+mds_ERROR_805_msg_en=Device is not connected or not Registered for the deviceId given in Auth Capture request object
+mds_ERROR_806_msg_en=Device connected purpose should be for Auth only for Auth Capture
+mds_ERROR_809_msg_en=Auth Capture request can not be done for Registration Devices
+mds_ERROR_810_msg_en=Auth Capture unknown error
+
+mds_ERROR_999_msg_en=Unknown Error
+
+mosip.mock.sbi.file.iris.double.streamimage.left=/Biometric Devices/Iris/Double/Stream Image/1.jpeg
+mosip.mock.sbi.file.iris.double.streamimage.right=/Biometric Devices/Iris/Double/Stream Image/2.jpeg
+mosip.mock.sbi.file.iris.double.streamimage.both=/Biometric Devices/Iris/Double/Stream Image/3.jpeg
diff --git a/ui-test/dependency-reduced-pom.xml b/ui-test/dependency-reduced-pom.xml
index 00861b66f..ffdf24ed2 100644
--- a/ui-test/dependency-reduced-pom.xml
+++ b/ui-test/dependency-reduced-pom.xml
@@ -3,10 +3,10 @@
4.0.0
io.mosip.esignet
uitest-esignet
- ui-test-esignet
+ uitest-esignet
1.6.0-SNAPSHOT
UI test automation project for MOSIP eSignet
- https://github.com/mosip/uitest-esignet
+ https://github.com/mosip/esignet
Mosip
diff --git a/ui-test/pom.xml b/ui-test/pom.xml
index 146930bd8..00227dfdc 100644
--- a/ui-test/pom.xml
+++ b/ui-test/pom.xml
@@ -46,6 +46,11 @@
+
+ org.yaml
+ snakeyaml
+ 1.23
+
org.seleniumhq.selenium
selenium-java
@@ -81,6 +86,12 @@
tech.grasshopper
extentreports-cucumber7-adapter
1.14.0
+
+
+ org.yaml
+ snakeyaml
+
+
@@ -145,7 +156,7 @@
io.mosip.testrig.apitest.commons
apitest-commons
- 1.3.3
+ 1.3.4
org.slf4j
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Face.iso b/ui-test/resource/Profile/Automatic/Auth/0001Face.iso
new file mode 100644
index 000000000..fbf94babc
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Face.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Index.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Index.iso
new file mode 100644
index 000000000..ed8bce579
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Index.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Index.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Index.wsq.iso
new file mode 100644
index 000000000..a14b92ba3
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Index.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Iris.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Iris.iso
new file mode 100644
index 000000000..b36363b6c
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Iris.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Little.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Little.iso
new file mode 100644
index 000000000..9f06705f6
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Little.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Little.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Little.wsq.iso
new file mode 100644
index 000000000..664d6d120
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Little.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Middle.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Middle.iso
new file mode 100644
index 000000000..3886e5a79
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Middle.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Middle.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Middle.wsq.iso
new file mode 100644
index 000000000..e0952a043
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Middle.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Ring.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Ring.iso
new file mode 100644
index 000000000..e07667852
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Ring.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Ring.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Ring.wsq.iso
new file mode 100644
index 000000000..9c139f53a
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Ring.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Thumb.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Thumb.iso
new file mode 100644
index 000000000..00d5ad5d4
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Thumb.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Left_Thumb.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Left_Thumb.wsq.iso
new file mode 100644
index 000000000..722fcef74
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Left_Thumb.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Index.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Index.iso
new file mode 100644
index 000000000..e45e8d152
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Index.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Index.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Index.wsq.iso
new file mode 100644
index 000000000..2f082284b
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Index.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Iris.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Iris.iso
new file mode 100644
index 000000000..552750cd6
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Iris.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Little.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Little.iso
new file mode 100644
index 000000000..aa801c97d
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Little.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Little.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Little.wsq.iso
new file mode 100644
index 000000000..c0fd3e8e1
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Little.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Middle.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Middle.iso
new file mode 100644
index 000000000..e6771d026
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Middle.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Middle.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Middle.wsq.iso
new file mode 100644
index 000000000..3ee43b4ff
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Middle.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Ring.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Ring.iso
new file mode 100644
index 000000000..ac8d2b629
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Ring.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Ring.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Ring.wsq.iso
new file mode 100644
index 000000000..5ac7ca429
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Ring.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Thumb.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Thumb.iso
new file mode 100644
index 000000000..722a5cd9d
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Thumb.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Auth/0001Right_Thumb.wsq.iso b/ui-test/resource/Profile/Automatic/Auth/0001Right_Thumb.wsq.iso
new file mode 100644
index 000000000..4f73143e4
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Auth/0001Right_Thumb.wsq.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Exception_Photo.iso b/ui-test/resource/Profile/Automatic/Registration/0001Exception_Photo.iso
new file mode 100644
index 000000000..80caced44
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Exception_Photo.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Face.iso b/ui-test/resource/Profile/Automatic/Registration/0001Face.iso
new file mode 100644
index 000000000..5e84939bd
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Face.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Left_Index.iso b/ui-test/resource/Profile/Automatic/Registration/0001Left_Index.iso
new file mode 100644
index 000000000..46c4112fa
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Left_Index.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Left_Iris.iso b/ui-test/resource/Profile/Automatic/Registration/0001Left_Iris.iso
new file mode 100644
index 000000000..fedadc7df
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Left_Iris.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Left_Little.iso b/ui-test/resource/Profile/Automatic/Registration/0001Left_Little.iso
new file mode 100644
index 000000000..d2b268468
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Left_Little.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Left_Middle.iso b/ui-test/resource/Profile/Automatic/Registration/0001Left_Middle.iso
new file mode 100644
index 000000000..804de92ce
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Left_Middle.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Left_Ring.iso b/ui-test/resource/Profile/Automatic/Registration/0001Left_Ring.iso
new file mode 100644
index 000000000..b40104882
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Left_Ring.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Left_Thumb.iso b/ui-test/resource/Profile/Automatic/Registration/0001Left_Thumb.iso
new file mode 100644
index 000000000..0574ba6c8
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Left_Thumb.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Right_Index.iso b/ui-test/resource/Profile/Automatic/Registration/0001Right_Index.iso
new file mode 100644
index 000000000..bfa1808cc
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Right_Index.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Right_Iris.iso b/ui-test/resource/Profile/Automatic/Registration/0001Right_Iris.iso
new file mode 100644
index 000000000..72bb495bf
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Right_Iris.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Right_Little.iso b/ui-test/resource/Profile/Automatic/Registration/0001Right_Little.iso
new file mode 100644
index 000000000..6b3badf29
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Right_Little.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Right_Middle.iso b/ui-test/resource/Profile/Automatic/Registration/0001Right_Middle.iso
new file mode 100644
index 000000000..0fa225597
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Right_Middle.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Right_Ring.iso b/ui-test/resource/Profile/Automatic/Registration/0001Right_Ring.iso
new file mode 100644
index 000000000..9aa5dc523
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Right_Ring.iso differ
diff --git a/ui-test/resource/Profile/Automatic/Registration/0001Right_Thumb.iso b/ui-test/resource/Profile/Automatic/Registration/0001Right_Thumb.iso
new file mode 100644
index 000000000..0931ac4fd
Binary files /dev/null and b/ui-test/resource/Profile/Automatic/Registration/0001Right_Thumb.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Face.iso b/ui-test/resource/Profile/Default/Auth/Face.iso
new file mode 100644
index 000000000..fbf94babc
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Face.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Finger_UKNOWN.iso b/ui-test/resource/Profile/Default/Auth/Finger_UKNOWN.iso
new file mode 100644
index 000000000..4ee38f986
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Finger_UKNOWN.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Finger_UKNOWN_wsq.iso b/ui-test/resource/Profile/Default/Auth/Finger_UKNOWN_wsq.iso
new file mode 100644
index 000000000..cc5ed30a9
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Finger_UKNOWN_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Iris_UNKNOWN.iso b/ui-test/resource/Profile/Default/Auth/Iris_UNKNOWN.iso
new file mode 100644
index 000000000..1764a0e6a
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Iris_UNKNOWN.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Index.iso b/ui-test/resource/Profile/Default/Auth/Left_Index.iso
new file mode 100644
index 000000000..ed8bce579
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Index.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Index_wsq.iso b/ui-test/resource/Profile/Default/Auth/Left_Index_wsq.iso
new file mode 100644
index 000000000..a14b92ba3
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Index_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Iris.iso b/ui-test/resource/Profile/Default/Auth/Left_Iris.iso
new file mode 100644
index 000000000..8b3aafca1
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Iris.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Little.iso b/ui-test/resource/Profile/Default/Auth/Left_Little.iso
new file mode 100644
index 000000000..9f06705f6
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Little.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Little_wsq.iso b/ui-test/resource/Profile/Default/Auth/Left_Little_wsq.iso
new file mode 100644
index 000000000..664d6d120
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Little_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Middle.iso b/ui-test/resource/Profile/Default/Auth/Left_Middle.iso
new file mode 100644
index 000000000..3886e5a79
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Middle.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Middle_wsq.iso b/ui-test/resource/Profile/Default/Auth/Left_Middle_wsq.iso
new file mode 100644
index 000000000..e0952a043
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Middle_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Ring.iso b/ui-test/resource/Profile/Default/Auth/Left_Ring.iso
new file mode 100644
index 000000000..e07667852
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Ring.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Ring_wsq.iso b/ui-test/resource/Profile/Default/Auth/Left_Ring_wsq.iso
new file mode 100644
index 000000000..9c139f53a
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Ring_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Thumb.iso b/ui-test/resource/Profile/Default/Auth/Left_Thumb.iso
new file mode 100644
index 000000000..00d5ad5d4
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Thumb.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Left_Thumb_wsq.iso b/ui-test/resource/Profile/Default/Auth/Left_Thumb_wsq.iso
new file mode 100644
index 000000000..722fcef74
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Left_Thumb_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Index.iso b/ui-test/resource/Profile/Default/Auth/Right_Index.iso
new file mode 100644
index 000000000..e45e8d152
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Index.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Index_wsq.iso b/ui-test/resource/Profile/Default/Auth/Right_Index_wsq.iso
new file mode 100644
index 000000000..2f082284b
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Index_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Iris.iso b/ui-test/resource/Profile/Default/Auth/Right_Iris.iso
new file mode 100644
index 000000000..3f2d73ad1
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Iris.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Little.iso b/ui-test/resource/Profile/Default/Auth/Right_Little.iso
new file mode 100644
index 000000000..aa801c97d
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Little.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Little_wsq.iso b/ui-test/resource/Profile/Default/Auth/Right_Little_wsq.iso
new file mode 100644
index 000000000..c0fd3e8e1
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Little_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Middle.iso b/ui-test/resource/Profile/Default/Auth/Right_Middle.iso
new file mode 100644
index 000000000..e6771d026
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Middle.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Middle_wsq.iso b/ui-test/resource/Profile/Default/Auth/Right_Middle_wsq.iso
new file mode 100644
index 000000000..3ee43b4ff
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Middle_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Ring.iso b/ui-test/resource/Profile/Default/Auth/Right_Ring.iso
new file mode 100644
index 000000000..ac8d2b629
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Ring.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Ring_wsq.iso b/ui-test/resource/Profile/Default/Auth/Right_Ring_wsq.iso
new file mode 100644
index 000000000..5ac7ca429
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Ring_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Thumb.iso b/ui-test/resource/Profile/Default/Auth/Right_Thumb.iso
new file mode 100644
index 000000000..722a5cd9d
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Thumb.iso differ
diff --git a/ui-test/resource/Profile/Default/Auth/Right_Thumb_wsq.iso b/ui-test/resource/Profile/Default/Auth/Right_Thumb_wsq.iso
new file mode 100644
index 000000000..4f73143e4
Binary files /dev/null and b/ui-test/resource/Profile/Default/Auth/Right_Thumb_wsq.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Exception_Photo.iso b/ui-test/resource/Profile/Default/Registration/Exception_Photo.iso
new file mode 100644
index 000000000..80caced44
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Exception_Photo.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Face.iso b/ui-test/resource/Profile/Default/Registration/Face.iso
new file mode 100644
index 000000000..5e84939bd
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Face.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Left_Index.iso b/ui-test/resource/Profile/Default/Registration/Left_Index.iso
new file mode 100644
index 000000000..46c4112fa
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Left_Index.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Left_Iris.iso b/ui-test/resource/Profile/Default/Registration/Left_Iris.iso
new file mode 100644
index 000000000..fedadc7df
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Left_Iris.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Left_Little.iso b/ui-test/resource/Profile/Default/Registration/Left_Little.iso
new file mode 100644
index 000000000..d2b268468
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Left_Little.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Left_Middle.iso b/ui-test/resource/Profile/Default/Registration/Left_Middle.iso
new file mode 100644
index 000000000..804de92ce
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Left_Middle.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Left_Ring.iso b/ui-test/resource/Profile/Default/Registration/Left_Ring.iso
new file mode 100644
index 000000000..b40104882
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Left_Ring.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Left_Thumb.iso b/ui-test/resource/Profile/Default/Registration/Left_Thumb.iso
new file mode 100644
index 000000000..0574ba6c8
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Left_Thumb.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Right_Index.iso b/ui-test/resource/Profile/Default/Registration/Right_Index.iso
new file mode 100644
index 000000000..bfa1808cc
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Right_Index.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Right_Iris.iso b/ui-test/resource/Profile/Default/Registration/Right_Iris.iso
new file mode 100644
index 000000000..72bb495bf
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Right_Iris.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Right_Little.iso b/ui-test/resource/Profile/Default/Registration/Right_Little.iso
new file mode 100644
index 000000000..6b3badf29
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Right_Little.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Right_Middle.iso b/ui-test/resource/Profile/Default/Registration/Right_Middle.iso
new file mode 100644
index 000000000..0fa225597
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Right_Middle.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Right_Ring.iso b/ui-test/resource/Profile/Default/Registration/Right_Ring.iso
new file mode 100644
index 000000000..9aa5dc523
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Right_Ring.iso differ
diff --git a/ui-test/resource/Profile/Default/Registration/Right_Thumb.iso b/ui-test/resource/Profile/Default/Registration/Right_Thumb.iso
new file mode 100644
index 000000000..0931ac4fd
Binary files /dev/null and b/ui-test/resource/Profile/Default/Registration/Right_Thumb.iso differ
diff --git a/ui-test/src/main/java/annotations/NeedsUIN.java b/ui-test/src/main/java/annotations/NeedsUIN.java
new file mode 100644
index 000000000..10c0bc1d2
--- /dev/null
+++ b/ui-test/src/main/java/annotations/NeedsUIN.java
@@ -0,0 +1,12 @@
+package annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+
+public @interface NeedsUIN {
+}
diff --git a/ui-test/src/main/java/annotations/NeedsVID.java b/ui-test/src/main/java/annotations/NeedsVID.java
new file mode 100644
index 000000000..3ddefd3e2
--- /dev/null
+++ b/ui-test/src/main/java/annotations/NeedsVID.java
@@ -0,0 +1,11 @@
+package annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface NeedsVID {
+}
\ No newline at end of file
diff --git a/ui-test/src/main/java/base/BasePage.java b/ui-test/src/main/java/base/BasePage.java
index a88d363e3..542b3ec7e 100644
--- a/ui-test/src/main/java/base/BasePage.java
+++ b/ui-test/src/main/java/base/BasePage.java
@@ -6,6 +6,7 @@
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.Duration;
+import java.util.Collections;
import java.util.List;
import org.openqa.selenium.Alert;
@@ -16,6 +17,7 @@
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.slf4j.Logger;
@@ -173,4 +175,4 @@ public void captureScreenshot(String filename) {
LOGGER.error("Failed to capture screenshot: {}", e.getMessage());
}
}
-}
+}
\ No newline at end of file
diff --git a/ui-test/src/main/java/base/BaseTest.java b/ui-test/src/main/java/base/BaseTest.java
index 717447fcc..fab6194df 100644
--- a/ui-test/src/main/java/base/BaseTest.java
+++ b/ui-test/src/main/java/base/BaseTest.java
@@ -1,9 +1,7 @@
package base;
-import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.time.Duration;
@@ -22,7 +20,6 @@
import com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter;
import io.cucumber.java.After;
-import io.cucumber.java.AfterAll;
import io.cucumber.java.AfterStep;
import io.cucumber.java.Before;
import io.cucumber.java.BeforeStep;
@@ -30,19 +27,25 @@
import io.cucumber.plugin.event.PickleStepTestStep;
import io.cucumber.plugin.event.TestCase;
import io.cucumber.plugin.event.TestStep;
+import io.mosip.testrig.apirig.utils.AdminTestUtil;
import io.mosip.testrig.apirig.utils.S3Adapter;
+import models.Uin;
+import models.Vid;
import utils.BaseTestUtil;
import utils.EsignetConfigManager;
+import utils.EsignetUtil;
import utils.ExtentReportManager;
+import utils.UINManager;
+import utils.VIDManager;
-public class BaseTest {
+public class BaseTest extends AdminTestUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(BaseTest.class);
private static final ThreadLocal driverThreadLocal = new ThreadLocal<>();
private static final ThreadLocal jseThreadLocal = new ThreadLocal<>();
-
- private final String url = EsignetConfigManager.getproperty("baseurl");
+ private static final ThreadLocal threadUin = new ThreadLocal<>();
+ private static final ThreadLocal threadVid = new ThreadLocal<>();
public static int passedCount = 0;
public static int failedCount = 0;
@@ -55,10 +58,10 @@ public void beforeAll(Scenario scenario) {
totalCount++;
String browser = BaseTestUtil.getBrowserForScenario(scenario); // Start logging for the scenario
- String lang = BaseTestUtil.getThreadLocalLanguage();
- ExtentReportManager.createTest(scenario.getName() + " [" + browser + " | " + lang + "]");
- ExtentReportManager.logStep("Scenario Started: " + scenario.getName() +
- " | Browser: " + browser + " | Language: " + lang);
+ String lang = BaseTestUtil.getThreadLocalLanguage();
+ ExtentReportManager.createTest(scenario.getName() + " [" + browser + " | " + lang + "]");
+ ExtentReportManager
+ .logStep("Scenario Started: " + scenario.getName() + " | Browser: " + browser + " | Language: " + lang);
try {
String scenarioBrowser = BaseTestUtil.getBrowserForScenario(scenario);
@@ -82,10 +85,23 @@ public void beforeAll(Scenario scenario) {
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); // Configurable if needed
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(30));
- driver.get(url);
+ String baseUrl = EsignetConfigManager.getproperty("eSignetbaseurl");
+ String template = EsignetConfigManager.getproperty("authorizeUrlTemplate");
+
+ String requestUri = EsignetUtil.generateParRequestUri();
+
+ String updatedTemplate = template.replace("$REQUEST_URI$", requestUri);
+
+ updatedTemplate = AdminTestUtil.replaceIdWithAutogeneratedId(updatedTemplate, "$ID:");
+
+ String authorizeUrl = baseUrl + updatedTemplate;
+
+ LOGGER.info("Authorize URL: " + authorizeUrl);
+
+ driver.get(authorizeUrl);
driver.manage().deleteAllCookies();
- LOGGER.info("Navigated to URL: " + url);
+ LOGGER.info("Navigated to URL: " + authorizeUrl);
} catch (Exception e) {
LOGGER.error("Failed to initialize WebDriver: " + e.getMessage());
@@ -95,11 +111,29 @@ public void beforeAll(Scenario scenario) {
}
}
+ @Before("@NeedsUIN")
+ public void handleUIN(Scenario scenario) throws InterruptedException {
+ Uin uinDetails = UINManager.acquireUIN();
+ threadUin.set(uinDetails);
+ }
+
+ @Before("@NeedsVID")
+ public void handleVID(Scenario scenario) throws InterruptedException {
+ Vid vidDetails = VIDManager.acquireVID();
+ threadVid.set(vidDetails);
+ }
+
@BeforeStep
public void beforeStep(Scenario scenario) {
String stepName = getStepName(scenario);
ExtentCucumberAdapter.getCurrentStep().log(Status.INFO, "➡️ Step Started: " + stepName);
}
+
+ @After
+ public void clearUinVid() {
+ threadUin.remove();
+ threadVid.remove();
+ }
@AfterStep
public void afterStep(Scenario scenario) {
@@ -191,8 +225,8 @@ private void captureScreenshot() {
public static void pushReportsToS3(String lang) {
String timestamp = new SimpleDateFormat("yyyy-MM-dd-HH-mm").format(new Date());
- String name = getEnvName() + "-" + lang + "-" + timestamp + "-T-" + totalCount + "-P-" + passedCount + "-F-" + failedCount
- + ".html";
+ String name = getEnvName() + "-" + lang + "-" + timestamp + "-T-" + totalCount + "-P-" + passedCount + "-F-"
+ + failedCount + ".html";
String newFileName = "EsignetUi-" + name;
File originalReportFile = new File(System.getProperty("user.dir") + "/test-output/ExtentReport.html");
File newReportFile = new File(System.getProperty("user.dir") + "/test-output/" + newFileName);
@@ -231,4 +265,21 @@ public static String getEnvName() {
return envName;
}
+
+ public Uin getUinDetails() {
+ return threadUin.get();
+ }
+
+ public String getUin() {
+ return getUinDetails() != null ? getUinDetails().getUin() : null;
+ }
+
+ public Vid getVidDetails() {
+ return threadVid.get();
+ }
+
+ public String getVid() {
+ return getVidDetails() != null ? getVidDetails().getVid() : null;
+ }
+
}
diff --git a/ui-test/src/main/java/constants/ESignetConstants.java b/ui-test/src/main/java/constants/ESignetConstants.java
index 2d1fc198a..8717e7f60 100644
--- a/ui-test/src/main/java/constants/ESignetConstants.java
+++ b/ui-test/src/main/java/constants/ESignetConstants.java
@@ -1,6 +1,13 @@
package constants;
public class ESignetConstants {
- public static final String mandatoryLanguageKey = "mosip.signup.idrepo.mandatory-language";
- public static final String optionalLanguageKey = "mosip.signup.idrepo.optional-language";
+ public static final String mandatoryLanguageKey = "mosip.signup.idrepo.mandatory-language";
+ public static final String optionalLanguageKey = "mosip.signup.idrepo.optional-language";
+ public static final String TESTCLASSES = "test-classes";
+ public static final String DSL = "dsl";
+ public static final String ESIGNETUI_MODULENAME = "esignetUI";
+ public static final String ESIGNET_SUPPORTED_LANGUAGE = "esignetSupportedLanguage";
+ public static final String ESIGNET_STRING = "ESignetUI_";
+ public static final String DPOP_KEY = "dpop_key";
+ public static final String DPOP_VALUE = "dpop_value";
}
diff --git a/ui-test/src/main/java/constants/UiConstants.java b/ui-test/src/main/java/constants/UiConstants.java
index bd03c8f03..48d3d134b 100644
--- a/ui-test/src/main/java/constants/UiConstants.java
+++ b/ui-test/src/main/java/constants/UiConstants.java
@@ -1,5 +1,32 @@
package constants;
+import utils.EsignetConfigManager;
+
public class UiConstants {
+ public static final String SIGNUP_ACTUATOR_ENDPOINT_KEYWORD = "actuatorSignupEndpoint";
+
+ public static final String ACTIVE_PROFILES = "activeProfiles";
+
+ public static final String SYSTEM_ENV_SECTION = "systemEnvironment";
+
+ public static final String CLASS_PATH_APPLICATION_PROPERTIES = "classpath:/application.properties";
+
+ public static final String CLASS_PATH_APPLICATION_DEFAULT_PROPERTIES = "classpath:/application-default.properties";
+
+ public static final String DEFAULT_STRING = "default";
+
+ public static final String MOSIP_CONFIG_APPLICATION_HYPHEN_STRING = "mosip-config/application-";
+
+ public static final String DOT_PROPERTIES_STRING = ".properties";
+
+ public static final String SIGNUP_BASE_URL = EsignetConfigManager.getSignupUrl();
+
+ public static final String SIGNUP_ACTUATOR_URL = SIGNUP_BASE_URL
+ + EsignetConfigManager.getproperty(SIGNUP_ACTUATOR_ENDPOINT_KEYWORD);
+
+ public static final String SIGNUP_UI_SPEC_KEYWORD = "uiSpecEndpoint";
+
+ public static final String SIGNUP_UI_SPEC_URL = SIGNUP_BASE_URL
+ + EsignetConfigManager.getproperty(SIGNUP_UI_SPEC_KEYWORD);
}
\ No newline at end of file
diff --git a/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/AddIdentity.java b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/AddIdentity.java
new file mode 100644
index 000000000..04ee31b1d
--- /dev/null
+++ b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/AddIdentity.java
@@ -0,0 +1,219 @@
+package io.mosip.testrig.apirig.esignetUI.testscripts;
+
+import java.lang.reflect.Field;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
+import javax.ws.rs.core.MediaType;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.testng.ITest;
+import org.testng.ITestContext;
+import org.testng.ITestResult;
+import org.testng.Reporter;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.testng.internal.BaseTestMethod;
+import org.testng.internal.TestResult;
+
+import io.mosip.testrig.apirig.dto.OutputValidationDto;
+import io.mosip.testrig.apirig.dto.TestCaseDTO;
+import io.mosip.testrig.apirig.testrunner.JsonPrecondtion;
+import io.mosip.testrig.apirig.utils.AdminTestException;
+import io.mosip.testrig.apirig.utils.AdminTestUtil;
+import io.mosip.testrig.apirig.utils.GlobalMethods;
+import io.mosip.testrig.apirig.utils.KernelAuthentication;
+import io.mosip.testrig.apirig.utils.OutputValidationUtil;
+import io.mosip.testrig.apirig.utils.ReportUtil;
+import io.mosip.testrig.apirig.utils.RestClient;
+import io.mosip.testrig.apirig.utils.SecurityXSSException;
+import io.restassured.response.Response;
+import utils.EsignetConfigManager;
+import utils.EsignetUtil;
+
+public class AddIdentity extends EsignetUtil implements ITest {
+ private static final Logger logger = Logger.getLogger(AddIdentity.class);
+ protected String testCaseName = "";
+ public Response response = null;
+ private boolean isWaitRequired = false;
+
+ /**
+ * get current testcaseName
+ */
+ @Override
+ public String getTestName() {
+ return testCaseName;
+
+ }
+
+ @BeforeClass
+ public static void setLogLevel() {
+ if (EsignetConfigManager.IsDebugEnabled())
+ logger.setLevel(Level.ALL);
+ else
+ logger.setLevel(Level.ERROR);
+ }
+
+ /**
+ * Data provider class provides test case list
+ *
+ * @return object of data provider
+ */
+ @DataProvider(name = "testcaselist")
+ public Object[] getTestCaseList(ITestContext context) {
+ String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile");
+ logger.info("Started executing yml: " + ymlFile);
+ return getYmlTestData(ymlFile);
+ }
+
+ /**
+ * Test method for OTP Generation execution
+ *
+ * @param objTestParameters
+ * @param testScenario
+ * @param testcaseName
+ * @throws Exception
+ */
+ @Test(dataProvider = "testcaselist")
+ public void test(TestCaseDTO testCaseDTO) throws Exception, SecurityXSSException {
+ testCaseName = testCaseDTO.getTestCaseName();
+ testCaseName = EsignetUtil.isTestCaseValidForExecution(testCaseDTO);
+
+ if (testCaseDTO.getEndPoint().contains("mock-identity-system")) {
+ String individualIDStr = String.valueOf(Calendar.getInstance().getTimeInMillis());
+ String phoneStr = "+91" + generateRandomNumberString(10);
+ String emailStr = testCaseName + "@mosip.net";
+ String passWordStr = properties.getProperty("passwordForAddIdentity");
+ String url = ApplnURI.replace("-internal", "") + testCaseDTO.getEndPoint();
+
+ String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate());
+
+ inputJson = EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName);
+
+ if (inputJson.contains("$RANDOMINDIVIDUALIDFORMOCKIDENTITY$")) {
+ inputJson = replaceKeywordWithValue(inputJson, "$RANDOMINDIVIDUALIDFORMOCKIDENTITY$", individualIDStr);
+ writeAutoGeneratedId(testCaseName, "UIN", individualIDStr);
+ }
+
+ if (inputJson.contains("$EMAILIDFORMOCKIDENTITY$")) {
+ inputJson = replaceKeywordWithValue(inputJson, "$EMAILIDFORMOCKIDENTITY$", emailStr);
+ writeAutoGeneratedId(testCaseName, "EMAIL", emailStr);
+ }
+ if (inputJson.contains("$PASSWORDFORMOCKIDENTITY$")) {
+ inputJson = replaceKeywordWithValue(inputJson, "$PASSWORDFORMOCKIDENTITY$", passWordStr);
+ writeAutoGeneratedId(testCaseName, "PASSWORD", passWordStr);
+ }
+ if (inputJson.contains("$PHONEFORMOCKIDENTITY$")) {
+ inputJson = replaceKeywordWithValue(inputJson, "$PHONEFORMOCKIDENTITY$", phoneStr);
+ writeAutoGeneratedId(testCaseName, "PHONE", phoneStr);
+ }
+
+ GlobalMethods.reportRequest(null, inputJson, url);
+
+ response = RestClient.post(url, inputJson);
+
+ GlobalMethods.reportResponse(response.getHeaders().asList().toString(), url, response);
+
+ } else {
+ isWaitRequired = true;
+ testCaseDTO.setInputTemplate(AdminTestUtil.modifySchemaGenerateHbs(testCaseDTO.isRegenerateHbs()));
+ String uin = JsonPrecondtion.getValueFromJson(
+ RestClient.getRequestWithCookie(ApplnURI + "/v1/idgenerator/uin", MediaType.APPLICATION_JSON,
+ MediaType.APPLICATION_JSON, COOKIENAME,
+ new KernelAuthentication().getTokenByRole(testCaseDTO.getRole())).asString(),
+ "response.uin");
+
+ DateFormat dateFormatter = new SimpleDateFormat("yyyyMMddHHmmss");
+ Calendar cal = Calendar.getInstance();
+ String timestampValue = dateFormatter.format(cal.getTime());
+ String genRid = "27847" + generateRandomNumberString(10) + timestampValue;
+
+ String jsonInput = testCaseDTO.getInput();
+
+ String inputJson = getJsonFromTemplate(jsonInput, testCaseDTO.getInputTemplate(), false);
+
+ inputJson = inputJson.replace("$UIN$", uin);
+ inputJson = inputJson.replace("$RID$", genRid);
+ String phoneNumber = "";
+ String email = testCaseName + "_" + generateRandomAlphaNumericString(3)
+ + generateRandomAlphaNumericString(3) + "@mosip.net";
+ if (inputJson.contains("$PHONENUMBERFORIDENTITY$")) {
+ if (!phoneSchemaRegex.isEmpty())
+ try {
+ phoneNumber = genStringAsperRegex(phoneSchemaRegex);
+ } catch (Exception e) {
+ logger.error(e.getMessage());
+ }
+ inputJson = replaceKeywordWithValue(inputJson, "$PHONENUMBERFORIDENTITY$", phoneNumber);
+ inputJson = replaceKeywordWithValue(inputJson, "$EMAILVALUE$", email);
+ }
+
+ inputJson = EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName);
+
+ response = postWithBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), inputJson, COOKIENAME,
+ testCaseDTO.getRole(), testCaseDTO.getTestCaseName());
+
+ if (testCaseDTO.getTestCaseName().contains("_Pos")) {
+ writeAutoGeneratedId(testCaseDTO.getTestCaseName(), "UIN", uin);
+ writeAutoGeneratedId(testCaseDTO.getTestCaseName(), "RID", genRid);
+ writeAutoGeneratedId(testCaseDTO.getTestCaseName(), "EMAIL", email);
+ writeAutoGeneratedId(testCaseDTO.getTestCaseName(), "PHONE", phoneNumber);
+ }
+ }
+
+ Map> outputValid = OutputValidationUtil.doJsonOutputValidation(
+ response.asString(), getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()),
+ testCaseDTO, response.getStatusCode());
+ Reporter.log(ReportUtil.getOutputValidationReport(outputValid));
+
+ if (!OutputValidationUtil.publishOutputResult(outputValid))
+ throw new AdminTestException("Failed at output validation");
+
+ }
+
+ /**
+ * The method ser current test name to result
+ *
+ * @param result
+ */
+ @AfterMethod(alwaysRun = true)
+ public void setResultTestName(ITestResult result) {
+ try {
+ Field method = TestResult.class.getDeclaredField("m_method");
+ method.setAccessible(true);
+ method.set(result, result.getMethod().clone());
+ BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod();
+ Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName");
+ f.setAccessible(true);
+ f.set(baseTestMethod, testCaseName);
+ } catch (Exception e) {
+ Reporter.log("Exception : " + e.getMessage());
+ }
+ }
+
+ @AfterClass(alwaysRun = true)
+ public void waittime() {
+
+ try {
+ if (getPluginName().equals("mosipid") == true && isWaitRequired == true) {
+ logger.info(
+ "waiting for " + EsignetConfigManager.getProperty("DelayInMilliSecAfterUinGeneration", "90000")
+ + " mili secs after UIN Generation In IDREPO");
+ Thread.sleep(
+ Long.parseLong(EsignetConfigManager.getProperty("DelayInMilliSecAfterUinGeneration", "90000")));
+ }
+
+ } catch (Exception e) {
+ logger.error("Exception : " + e.getMessage());
+ Thread.currentThread().interrupt();
+ }
+
+ }
+}
diff --git a/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/PostWithOnlyPathParam.java b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/PostWithOnlyPathParam.java
new file mode 100644
index 000000000..99023582b
--- /dev/null
+++ b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/PostWithOnlyPathParam.java
@@ -0,0 +1,129 @@
+package io.mosip.testrig.apirig.esignetUI.testscripts;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.testng.ITest;
+import org.testng.ITestContext;
+import org.testng.ITestResult;
+import org.testng.Reporter;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.testng.internal.BaseTestMethod;
+import org.testng.internal.TestResult;
+
+import io.mosip.testrig.apirig.dto.OutputValidationDto;
+import io.mosip.testrig.apirig.dto.TestCaseDTO;
+import io.mosip.testrig.apirig.utils.AdminTestException;
+import io.mosip.testrig.apirig.utils.AuthenticationTestException;
+import io.mosip.testrig.apirig.utils.GlobalConstants;
+import io.mosip.testrig.apirig.utils.OutputValidationUtil;
+import io.mosip.testrig.apirig.utils.ReportUtil;
+import io.mosip.testrig.apirig.utils.SecurityXSSException;
+import io.restassured.response.Response;
+import utils.EsignetConfigManager;
+import utils.EsignetUtil;
+
+public class PostWithOnlyPathParam extends EsignetUtil implements ITest {
+ private static final Logger logger = Logger.getLogger(PostWithOnlyPathParam.class);
+ protected String testCaseName = "";
+ public Response response = null;
+ public boolean sendEsignetToken = false;
+
+ @BeforeClass
+ public static void setLogLevel() {
+ if (EsignetConfigManager.IsDebugEnabled())
+ logger.setLevel(Level.ALL);
+ else
+ logger.setLevel(Level.ERROR);
+ }
+
+ /**
+ * get current testcaseName
+ */
+ @Override
+ public String getTestName() {
+ return testCaseName;
+ }
+
+ /**
+ * Data provider class provides test case list
+ *
+ * @return object of data provider
+ */
+ @DataProvider(name = "testcaselist")
+ public Object[] getTestCaseList(ITestContext context) {
+ String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile");
+ sendEsignetToken = context.getCurrentXmlTest().getLocalParameters().containsKey("sendEsignetToken");
+ logger.info("Started executing yml: " + ymlFile);
+ return getYmlTestData(ymlFile);
+ }
+
+ /**
+ * Test method for OTP Generation execution
+ *
+ * @param objTestParameters
+ * @param testScenario
+ * @param testcaseName
+ * @throws AuthenticationTestException
+ * @throws AdminTestException
+ */
+ @Test(dataProvider = "testcaselist")
+ public void test(TestCaseDTO testCaseDTO)
+ throws AuthenticationTestException, AdminTestException, SecurityXSSException {
+ testCaseName = testCaseDTO.getTestCaseName();
+ testCaseName = EsignetUtil.isTestCaseValidForExecution(testCaseDTO);
+
+ String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate());
+ inputJson = EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName);
+
+ response = postWithOnlyPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(), inputJson, COOKIENAME,
+ testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), sendEsignetToken);
+
+ Map> outputValid = null;
+ if (testCaseName.contains("_StatusCode")) {
+
+ OutputValidationDto customResponse = customStatusCodeResponse(String.valueOf(response.getStatusCode()),
+ testCaseDTO.getOutput());
+
+ outputValid = new HashMap<>();
+ outputValid.put(GlobalConstants.EXPECTED_VS_ACTUAL, List.of(customResponse));
+ } else {
+ outputValid = OutputValidationUtil.doJsonOutputValidation(response.asString(),
+ getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), testCaseDTO,
+ response.getStatusCode());
+ }
+
+ Reporter.log(ReportUtil.getOutputValidationReport(outputValid));
+
+ if (!OutputValidationUtil.publishOutputResult(outputValid))
+ throw new AdminTestException("Failed at output validation");
+
+ }
+
+ /**
+ * The method ser current test name to result
+ *
+ * @param result
+ */
+ @AfterMethod(alwaysRun = true)
+ public void setResultTestName(ITestResult result) {
+ try {
+ Field method = TestResult.class.getDeclaredField("m_method");
+ method.setAccessible(true);
+ method.set(result, result.getMethod().clone());
+ BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod();
+ Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName");
+ f.setAccessible(true);
+ f.set(baseTestMethod, testCaseName);
+ } catch (Exception e) {
+ Reporter.log("Exception : " + e.getMessage());
+ }
+ }
+}
diff --git a/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/PutWithPathParamsAndBody.java b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/PutWithPathParamsAndBody.java
new file mode 100644
index 000000000..c65c75894
--- /dev/null
+++ b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/PutWithPathParamsAndBody.java
@@ -0,0 +1,128 @@
+package io.mosip.testrig.apirig.esignetUI.testscripts;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.testng.ITest;
+import org.testng.ITestContext;
+import org.testng.ITestResult;
+import org.testng.Reporter;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.testng.internal.BaseTestMethod;
+import org.testng.internal.TestResult;
+
+import io.mosip.testrig.apirig.dto.OutputValidationDto;
+import io.mosip.testrig.apirig.dto.TestCaseDTO;
+import io.mosip.testrig.apirig.utils.AdminTestException;
+import io.mosip.testrig.apirig.utils.AuthenticationTestException;
+import io.mosip.testrig.apirig.utils.GlobalConstants;
+import io.mosip.testrig.apirig.utils.OutputValidationUtil;
+import io.mosip.testrig.apirig.utils.ReportUtil;
+import io.mosip.testrig.apirig.utils.SecurityXSSException;
+import io.restassured.response.Response;
+import utils.EsignetConfigManager;
+import utils.EsignetUtil;
+
+public class PutWithPathParamsAndBody extends EsignetUtil implements ITest {
+ private static final Logger logger = Logger.getLogger(PutWithPathParamsAndBody.class);
+ protected String testCaseName = "";
+ String pathParams = null;
+ public Response response = null;
+
+ @BeforeClass
+ public static void setLogLevel() {
+ if (EsignetConfigManager.IsDebugEnabled())
+ logger.setLevel(Level.ALL);
+ else
+ logger.setLevel(Level.ERROR);
+ }
+
+ /**
+ * get current testcaseName
+ */
+ @Override
+ public String getTestName() {
+ return testCaseName;
+ }
+
+ /**
+ * Data provider class provides test case list
+ *
+ * @return object of data provider
+ */
+ @DataProvider(name = "testcaselist")
+ public Object[] getTestCaseList(ITestContext context) {
+ String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile");
+ pathParams = context.getCurrentXmlTest().getLocalParameters().get("pathParams");
+ logger.info("Started executing yml: " + ymlFile);
+ return getYmlTestData(ymlFile);
+ }
+
+ /**
+ * Test method for OTP Generation execution
+ *
+ * @param objTestParameters
+ * @param testScenario
+ * @param testcaseName
+ * @throws AuthenticationTestException
+ * @throws AdminTestException
+ */
+ @Test(dataProvider = "testcaselist")
+ public void test(TestCaseDTO testCaseDTO)
+ throws AuthenticationTestException, AdminTestException, SecurityXSSException {
+ testCaseName = testCaseDTO.getTestCaseName();
+ testCaseName = EsignetUtil.isTestCaseValidForExecution(testCaseDTO);
+
+ String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate());
+
+ inputJson = EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName);
+
+ response = putWithPathParamsBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), inputJson, COOKIENAME,
+ testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), pathParams);
+ Map> outputValid = null;
+ if (testCaseName.contains("_StatusCode")) {
+
+ OutputValidationDto customResponse = customStatusCodeResponse(String.valueOf(response.getStatusCode()),
+ testCaseDTO.getOutput());
+
+ outputValid = new HashMap<>();
+ outputValid.put(GlobalConstants.EXPECTED_VS_ACTUAL, List.of(customResponse));
+ } else {
+ outputValid = OutputValidationUtil.doJsonOutputValidation(response.asString(),
+ getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), testCaseDTO,
+ response.getStatusCode());
+ }
+ Reporter.log(ReportUtil.getOutputValidationReport(outputValid));
+
+ if (!OutputValidationUtil.publishOutputResult(outputValid))
+ throw new AdminTestException("Failed at output validation");
+
+ }
+
+ /**
+ * The method ser current test name to result
+ *
+ * @param result
+ */
+ @AfterMethod(alwaysRun = true)
+ public void setResultTestName(ITestResult result) {
+ try {
+ Field method = TestResult.class.getDeclaredField("m_method");
+ method.setAccessible(true);
+ method.set(result, result.getMethod().clone());
+ BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod();
+ Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName");
+ f.setAccessible(true);
+ f.set(baseTestMethod, testCaseName);
+ } catch (Exception e) {
+ Reporter.log("Exception : " + e.getMessage());
+ }
+ }
+}
diff --git a/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePost.java b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePost.java
new file mode 100644
index 000000000..293c360ee
--- /dev/null
+++ b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePost.java
@@ -0,0 +1,142 @@
+package io.mosip.testrig.apirig.esignetUI.testscripts;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.testng.ITest;
+import org.testng.ITestContext;
+import org.testng.ITestResult;
+import org.testng.Reporter;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.testng.internal.BaseTestMethod;
+import org.testng.internal.TestResult;
+
+import constants.ESignetConstants;
+import io.mosip.testrig.apirig.dto.OutputValidationDto;
+import io.mosip.testrig.apirig.dto.TestCaseDTO;
+import io.mosip.testrig.apirig.utils.AdminTestException;
+import io.mosip.testrig.apirig.utils.AuthenticationTestException;
+import io.mosip.testrig.apirig.utils.GlobalConstants;
+import io.mosip.testrig.apirig.utils.OutputValidationUtil;
+import io.mosip.testrig.apirig.utils.ReportUtil;
+import io.mosip.testrig.apirig.utils.SecurityXSSException;
+import io.restassured.response.Response;
+import utils.EsignetConfigManager;
+import utils.EsignetUtil;
+
+public class SimplePost extends EsignetUtil implements ITest {
+ private static final Logger logger = Logger.getLogger(SimplePost.class);
+ protected String testCaseName = "";
+ public Response response = null;
+ public boolean sendEsignetToken = false;
+ public boolean auditLogCheck = false;
+
+ @BeforeClass
+ public static void setLogLevel() {
+ if (EsignetConfigManager.IsDebugEnabled())
+ logger.setLevel(Level.ALL);
+ else
+ logger.setLevel(Level.ERROR);
+ }
+
+ /**
+ * get current testcaseName
+ */
+ @Override
+ public String getTestName() {
+ return testCaseName;
+ }
+
+ /**
+ * Data provider class provides test case list
+ *
+ * @return object of data provider
+ */
+ @DataProvider(name = "testcaselist")
+ public Object[] getTestCaseList(ITestContext context) {
+ String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile");
+ sendEsignetToken = context.getCurrentXmlTest().getLocalParameters().containsKey("sendEsignetToken");
+ logger.info("Started executing yml: " + ymlFile);
+ return getYmlTestData(ymlFile);
+ }
+
+ /**
+ * Test method for OTP Generation execution
+ *
+ * @param objTestParameters
+ * @param testScenario
+ * @param testcaseName
+ * @throws AuthenticationTestException
+ * @throws AdminTestException
+ */
+ @Test(dataProvider = "testcaselist")
+ public void test(TestCaseDTO testCaseDTO)
+ throws AuthenticationTestException, AdminTestException, SecurityXSSException {
+ testCaseName = testCaseDTO.getTestCaseName();
+ testCaseName = EsignetUtil.isTestCaseValidForExecution(testCaseDTO);
+ auditLogCheck = testCaseDTO.isAuditLogCheck();
+
+ String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate());
+
+ String tempUrl = EsignetConfigManager.getEsignetBaseUrl();
+ if (testCaseName.contains(ESignetConstants.ESIGNET_STRING)) {
+
+ inputJson = EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName);
+
+ response = postRequestWithCookieAuthHeaderAndXsrfToken(tempUrl + testCaseDTO.getEndPoint(), inputJson,
+ COOKIENAME, testCaseDTO.getTestCaseName());
+
+ } else {
+ inputJson = EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName);
+ response = postWithBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), inputJson, auditLogCheck, COOKIENAME,
+ testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), sendEsignetToken);
+ }
+ Map> outputValid = null;
+ if (testCaseName.contains("_StatusCode")) {
+
+ OutputValidationDto customResponse = customStatusCodeResponse(String.valueOf(response.getStatusCode()),
+ testCaseDTO.getOutput());
+
+ outputValid = new HashMap<>();
+ outputValid.put(GlobalConstants.EXPECTED_VS_ACTUAL, List.of(customResponse));
+ } else {
+ outputValid = OutputValidationUtil.doJsonOutputValidation(response.asString(),
+ getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), testCaseDTO,
+ response.getStatusCode());
+ }
+
+ Reporter.log(ReportUtil.getOutputValidationReport(outputValid));
+
+ if (!OutputValidationUtil.publishOutputResult(outputValid)) {
+ throw new AdminTestException("Failed at otp output validation");
+ }
+
+ }
+
+ /**
+ * The method ser current test name to result
+ *
+ * @param result
+ */
+ @AfterMethod(alwaysRun = true)
+ public void setResultTestName(ITestResult result) {
+ try {
+ Field method = TestResult.class.getDeclaredField("m_method");
+ method.setAccessible(true);
+ method.set(result, result.getMethod().clone());
+ BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod();
+ Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName");
+ f.setAccessible(true);
+ f.set(baseTestMethod, testCaseName);
+ } catch (Exception e) {
+ Reporter.log("Exception : " + e.getMessage());
+ }
+ }
+}
diff --git a/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePostForAutoGenId.java b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePostForAutoGenId.java
new file mode 100644
index 000000000..b08ef2479
--- /dev/null
+++ b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePostForAutoGenId.java
@@ -0,0 +1,151 @@
+package io.mosip.testrig.apirig.esignetUI.testscripts;
+
+import java.lang.reflect.Field;
+import java.security.NoSuchAlgorithmException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.json.JSONObject;
+import org.testng.ITest;
+import org.testng.ITestContext;
+import org.testng.ITestResult;
+import org.testng.Reporter;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.testng.internal.BaseTestMethod;
+import org.testng.internal.TestResult;
+
+import constants.ESignetConstants;
+import io.mosip.testrig.apirig.dto.OutputValidationDto;
+import io.mosip.testrig.apirig.dto.TestCaseDTO;
+import io.mosip.testrig.apirig.utils.AdminTestException;
+import io.mosip.testrig.apirig.utils.AuthenticationTestException;
+import io.mosip.testrig.apirig.utils.GlobalConstants;
+import io.mosip.testrig.apirig.utils.OutputValidationUtil;
+import io.mosip.testrig.apirig.utils.ReportUtil;
+import io.mosip.testrig.apirig.utils.SecurityXSSException;
+import io.restassured.response.Response;
+import utils.EsignetConfigManager;
+import utils.EsignetUtil;
+
+public class SimplePostForAutoGenId extends EsignetUtil implements ITest {
+ private static final Logger logger = Logger.getLogger(SimplePostForAutoGenId.class);
+ protected String testCaseName = "";
+ public String idKeyName = null;
+ public Response response = null;
+ public boolean sendEsignetToken = false;
+ public boolean auditLogCheck = false;
+
+ @BeforeClass
+ public static void setLogLevel() {
+ if (EsignetConfigManager.IsDebugEnabled())
+ logger.setLevel(Level.ALL);
+ else
+ logger.setLevel(Level.ERROR);
+ }
+
+ /**
+ * get current testcaseName
+ */
+ @Override
+ public String getTestName() {
+ return testCaseName;
+ }
+
+ /**
+ * Data provider class provides test case list
+ *
+ * @return object of data provider
+ */
+ @DataProvider(name = "testcaselist")
+ public Object[] getTestCaseList(ITestContext context) {
+ String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile");
+ sendEsignetToken = context.getCurrentXmlTest().getLocalParameters().containsKey("sendEsignetToken");
+ idKeyName = context.getCurrentXmlTest().getLocalParameters().get("idKeyName");
+ logger.info("Started executing yml: " + ymlFile);
+ return getYmlTestData(ymlFile);
+ }
+
+ /**
+ * Test method for OTP Generation execution
+ *
+ * @param objTestParameters
+ * @param testScenario
+ * @param testcaseName
+ * @throws AuthenticationTestException
+ * @throws AdminTestException
+ * @throws NoSuchAlgorithmException
+ */
+ @Test(dataProvider = "testcaselist")
+ public void test(TestCaseDTO testCaseDTO)
+ throws AuthenticationTestException, AdminTestException, NoSuchAlgorithmException, SecurityXSSException {
+ testCaseName = testCaseDTO.getTestCaseName();
+ testCaseName = EsignetUtil.isTestCaseValidForExecution(testCaseDTO);
+
+ String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate());
+
+ if (testCaseName.contains(ESignetConstants.ESIGNET_STRING)) {
+ String tempUrl = null;
+ tempUrl = EsignetConfigManager.getEsignetBaseUrl();
+ inputJson = EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName);
+ if (getPluginName().equals("mock") == true) {
+ inputJson = inputJsonKeyWordHandeler(inputJson, testCaseName);
+ response = EsignetUtil.postWithBodyAndBearerToken(tempUrl + testCaseDTO.getEndPoint(), inputJson,
+ COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), idKeyName);
+ if (testCaseName.toLowerCase().contains("_sid")) {
+ writeAutoGeneratedId(testCaseName, idKeyName, new JSONObject(response.getBody().asString())
+ .getJSONObject(GlobalConstants.RESPONSE).getString(idKeyName).toString());
+ }
+ }
+
+ } else {
+ inputJson = EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName);
+ response = postWithBodyAndCookieForAutoGeneratedId(ApplnURI + testCaseDTO.getEndPoint(), inputJson,
+ auditLogCheck, COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), idKeyName,
+ sendEsignetToken);
+ }
+
+ Map> outputValid = null;
+ if (testCaseName.contains("_StatusCode")) {
+
+ OutputValidationDto customResponse = customStatusCodeResponse(String.valueOf(response.getStatusCode()),
+ testCaseDTO.getOutput());
+
+ outputValid = new HashMap<>();
+ outputValid.put(GlobalConstants.EXPECTED_VS_ACTUAL, List.of(customResponse));
+ } else {
+ outputValid = OutputValidationUtil.doJsonOutputValidation(response.asString(),
+ getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), testCaseDTO,
+ response.getStatusCode());
+ }
+ Reporter.log(ReportUtil.getOutputValidationReport(outputValid));
+ if (!OutputValidationUtil.publishOutputResult(outputValid))
+ throw new AdminTestException("Failed at output validation");
+
+ }
+
+ /**
+ * The method ser current test name to result
+ *
+ * @param result
+ */
+ @AfterMethod(alwaysRun = true)
+ public void setResultTestName(ITestResult result) {
+ try {
+ Field method = TestResult.class.getDeclaredField("m_method");
+ method.setAccessible(true);
+ method.set(result, result.getMethod().clone());
+ BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod();
+ Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName");
+ f.setAccessible(true);
+ f.set(baseTestMethod, testCaseName);
+ } catch (Exception e) {
+ Reporter.log("Exception : " + e.getMessage());
+ }
+ }
+}
diff --git a/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePostForAutoGenIdForUrlEncoded.java b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePostForAutoGenIdForUrlEncoded.java
new file mode 100644
index 000000000..ade68eaf5
--- /dev/null
+++ b/ui-test/src/main/java/io/mosip/testrig/apirig/esignetUI/testscripts/SimplePostForAutoGenIdForUrlEncoded.java
@@ -0,0 +1,128 @@
+package io.mosip.testrig.apirig.esignetUI.testscripts;
+
+import java.lang.reflect.Field;
+import java.security.NoSuchAlgorithmException;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.testng.ITest;
+import org.testng.ITestContext;
+import org.testng.ITestResult;
+import org.testng.Reporter;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.testng.internal.BaseTestMethod;
+import org.testng.internal.TestResult;
+
+import constants.ESignetConstants;
+import io.mosip.testrig.apirig.dto.OutputValidationDto;
+import io.mosip.testrig.apirig.dto.TestCaseDTO;
+import io.mosip.testrig.apirig.utils.AdminTestException;
+import io.mosip.testrig.apirig.utils.AuthenticationTestException;
+import io.mosip.testrig.apirig.utils.OutputValidationUtil;
+import io.mosip.testrig.apirig.utils.ReportUtil;
+import io.mosip.testrig.apirig.utils.SecurityXSSException;
+import io.restassured.response.Response;
+import utils.EsignetConfigManager;
+import utils.EsignetUtil;
+
+public class SimplePostForAutoGenIdForUrlEncoded extends EsignetUtil implements ITest {
+ private static final Logger logger = Logger.getLogger(SimplePostForAutoGenIdForUrlEncoded.class);
+ protected String testCaseName = "";
+ public String idKeyName = null;
+ public Response response = null;
+
+ @BeforeClass
+ public static void setLogLevel() {
+ if (EsignetConfigManager.IsDebugEnabled())
+ logger.setLevel(Level.ALL);
+ else
+ logger.setLevel(Level.ERROR);
+ }
+
+ /**
+ * get current testcaseName
+ */
+ @Override
+ public String getTestName() {
+ return testCaseName;
+ }
+
+ /**
+ * Data provider class provides test case list
+ *
+ * @return object of data provider
+ */
+ @DataProvider(name = "testcaselist")
+ public Object[] getTestCaseList(ITestContext context) {
+ String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile");
+ idKeyName = context.getCurrentXmlTest().getLocalParameters().get("idKeyName");
+ logger.info("Started executing yml: " + ymlFile);
+ return getYmlTestData(ymlFile);
+ }
+
+ /**
+ * Test method for OTP Generation execution
+ *
+ * @param objTestParameters
+ * @param testScenario
+ * @param testcaseName
+ * @throws AuthenticationTestException
+ * @throws AdminTestException
+ * @throws NoSuchAlgorithmException
+ */
+ @Test(dataProvider = "testcaselist")
+ public void test(TestCaseDTO testCaseDTO)
+ throws AuthenticationTestException, AdminTestException, NoSuchAlgorithmException, SecurityXSSException {
+ testCaseName = testCaseDTO.getTestCaseName();
+ testCaseName = EsignetUtil.isTestCaseValidForExecution(testCaseDTO);
+
+ String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate());
+ String outputJson = getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate());
+
+ String jsonInput = inputJsonKeyWordHandeler(EsignetUtil.inputstringKeyWordHandler(inputJson, testCaseName),
+ testCaseName);
+
+ if (testCaseName.contains(ESignetConstants.ESIGNET_STRING)) {
+ String tempUrl = EsignetConfigManager.getEsignetBaseUrl();
+ String endPoint = tempUrl + testCaseDTO.getEndPoint();
+ response = postWithBodyAndCookieForAutoGeneratedIdForUrlEncoded(endPoint, jsonInput,
+ testCaseDTO.getTestCaseName(), idKeyName);
+
+ } else {
+ response = postWithBodyAndCookieForAutoGeneratedIdForUrlEncoded(ApplnURI + testCaseDTO.getEndPoint(),
+ jsonInput, testCaseDTO.getTestCaseName(), idKeyName);
+ }
+
+ Map> outputValid = OutputValidationUtil
+ .doJsonOutputValidation(response.asString(), outputJson, testCaseDTO, response.getStatusCode());
+ Reporter.log(ReportUtil.getOutputValidationReport(outputValid));
+ if (!OutputValidationUtil.publishOutputResult(outputValid))
+ throw new AdminTestException("Failed at output validation");
+
+ }
+
+ /**
+ * The method ser current test name to result
+ *
+ * @param result
+ */
+ @AfterMethod(alwaysRun = true)
+ public void setResultTestName(ITestResult result) {
+ try {
+ Field method = TestResult.class.getDeclaredField("m_method");
+ method.setAccessible(true);
+ method.set(result, result.getMethod().clone());
+ BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod();
+ Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName");
+ f.setAccessible(true);
+ f.set(baseTestMethod, testCaseName);
+ } catch (Exception e) {
+ Reporter.log("Exception : " + e.getMessage());
+ }
+ }
+}
diff --git a/ui-test/src/main/java/models/Uin.java b/ui-test/src/main/java/models/Uin.java
new file mode 100644
index 000000000..b3ec562b1
--- /dev/null
+++ b/ui-test/src/main/java/models/Uin.java
@@ -0,0 +1,33 @@
+package models;
+
+public class Uin {
+ private String uin;
+ private String phone;
+ private String email;
+
+ public Uin(String uin) {
+ this.uin = uin;
+ }
+
+ public String getUin() {
+ return uin;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ @Override
+ public String toString() {
+ return "UIN{" +
+ "uin='" + uin + '\'' +
+ ", phone='" + phone + '\'' +
+ ", email='" + email + '\'' +
+ '}';
+ }
+
+}
diff --git a/ui-test/src/main/java/models/Vid.java b/ui-test/src/main/java/models/Vid.java
new file mode 100644
index 000000000..420b7663e
--- /dev/null
+++ b/ui-test/src/main/java/models/Vid.java
@@ -0,0 +1,32 @@
+package models;
+
+public class Vid {
+ private String vid;
+ private String phone;
+ private String email;
+
+ public Vid(String vid) {
+ this.vid = vid;
+ }
+
+ public String getVid() {
+ return vid;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ @Override
+ public String toString() {
+ return "VID{" +
+ "vid='" + vid + '\'' +
+ ", phone='" + phone + '\'' +
+ ", email='" + email + '\'' +
+ '}';
+ }
+}
\ No newline at end of file
diff --git a/ui-test/src/main/java/pages/LoginOptionsPage.java b/ui-test/src/main/java/pages/LoginOptionsPage.java
index ad73cdd8a..a192e2936 100644
--- a/ui-test/src/main/java/pages/LoginOptionsPage.java
+++ b/ui-test/src/main/java/pages/LoginOptionsPage.java
@@ -34,4 +34,4 @@ public void clickOnLoginWithInji() {
clickOnElement(loginWithInji);
}
-}
+}
\ No newline at end of file
diff --git a/ui-test/src/main/java/pages/MultiLanguagePage.java b/ui-test/src/main/java/pages/MultiLanguagePage.java
index 46d543e34..467890c5d 100644
--- a/ui-test/src/main/java/pages/MultiLanguagePage.java
+++ b/ui-test/src/main/java/pages/MultiLanguagePage.java
@@ -1,12 +1,13 @@
package pages;
-import base.BasePage;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
+
+import base.BasePage;
import utils.BaseTestUtil;
import utils.LanguageUtil;
diff --git a/ui-test/src/main/java/runners/Runner.java b/ui-test/src/main/java/runners/Runner.java
index 49aa3ac82..262d46f40 100644
--- a/ui-test/src/main/java/runners/Runner.java
+++ b/ui-test/src/main/java/runners/Runner.java
@@ -9,7 +9,6 @@
import java.util.logging.Level;
import java.util.logging.Logger;
-import base.BaseTest;
import org.junit.runner.RunWith;
import org.testng.TestNG;
import org.testng.annotations.DataProvider;
@@ -17,13 +16,29 @@
import com.aventstack.extentreports.service.ExtentService;
+import base.BaseTest;
+import constants.ESignetConstants;
import io.cucumber.junit.Cucumber;
import io.cucumber.testng.AbstractTestNGCucumberTests;
import io.cucumber.testng.CucumberOptions;
import io.cucumber.testng.FeatureWrapper;
import io.cucumber.testng.PickleWrapper;
+import io.mosip.testrig.apirig.dataprovider.BiometricDataProvider;
+import io.mosip.testrig.apirig.testrunner.BaseTestCase;
+import io.mosip.testrig.apirig.testrunner.ExtractResource;
+import io.mosip.testrig.apirig.testrunner.OTPListener;
+import io.mosip.testrig.apirig.utils.AdminTestUtil;
+import io.mosip.testrig.apirig.utils.AuthTestsUtil;
+import io.mosip.testrig.apirig.utils.CertsUtil;
+import io.mosip.testrig.apirig.utils.JWKKeyUtil;
+import io.mosip.testrig.apirig.utils.KeyCloakUserAndAPIKeyGeneration;
+import io.mosip.testrig.apirig.utils.KeycloakUserManager;
+import io.mosip.testrig.apirig.utils.MispPartnerAndLicenseKeyGeneration;
+import io.mosip.testrig.apirig.utils.OutputValidationUtil;
+import io.mosip.testrig.apirig.utils.PartnerRegistration;
import utils.BaseTestUtil;
import utils.EsignetConfigManager;
+import utils.EsignetUtil;
import utils.ExtentReportManager;
import utils.LanguageUtil;
@@ -39,161 +54,266 @@
// tags = "@smoke"
)
public class Runner extends AbstractTestNGCucumberTests {
- private static final Logger LOGGER = Logger.getLogger(BaseTestUtil.class.getName());
-
- @Override
- @DataProvider(parallel = true, name = "scenarios")
- public Object[][] scenarios() {
- int threadCount = Integer.parseInt(EsignetConfigManager.getproperty("threadCount"));
-
- System.out.println("Executing with thread count: " + threadCount);
- LOGGER.info("Executing DataProvider with thread count: " + threadCount);
-
- System.setProperty("dataproviderthreadcount", String.valueOf(threadCount));
-
- Object[][] base = super.scenarios();
- boolean runMultipleBrowsers = Boolean.parseBoolean(EsignetConfigManager.getproperty("runMultipleBrowsers"));
- List browsers = BaseTestUtil.getSupportedLocalBrowsers();
-
- String lang = System.getProperty("currentRunLanguage");
-
- if (runMultipleBrowsers && base.length > 0 && !browsers.isEmpty()) {
- List