From 008d72442ab5fd3bb2e42f667e4a8e19d7106727 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Mon, 7 Dec 2015 12:07:28 +0000
Subject: [PATCH] SSDM-2788 : Report basic tests

SVN: 35223
---
 .../html/test/test-jsVSjava.js                | 45 ++++++++++++++++---
 1 file changed, 38 insertions(+), 7 deletions(-)

diff --git a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
index 616c6c1ef9f..77c662ecf56 100644
--- a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
+++ b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
@@ -12,9 +12,35 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
 //		
 //		}
 //		
-//		var standardHandler = function(javaDef, jsDef) {
-//			
-//		}
+		var standardHandler = function(javaClassReport, jsObject) {
+			//Check object returned
+			if(!jsObject) {
+				console.info("JS class missing instance: " + javaClassReport.jsonObjAnnotation);
+				return;
+			}
+			
+			//Check prototype available
+			if(!jsObject.prototype) {
+				console.info("JS class missing prototype: " + javaClassReport.jsonObjAnnotation);
+				return;
+			}
+			
+			//Java Fields found in Javascript
+			for(var fIdx = 0; fIdx < javaClassReport.fields.length; fIdx++) {
+				if(!jsObject.prototype[javaClassReport.fields[fIdx]]) {
+					console.info("JS class missing field: " + javaClassReport.jsonObjAnnotation + " - " + javaClassReport.fields[fIdx]);
+				}
+			}
+			
+			//Java Methods found in Javascript
+			for(var fIdx = 0; fIdx < javaClassReport.methods.length; fIdx++) {
+				if(!jsObject.prototype[javaClassReport.methods[fIdx]]) {
+					console.info("JS class missing method: " + javaClassReport.jsonObjAnnotation + " - " + javaClassReport.methods[fIdx]);
+				}
+			}
+			
+			var breakHere = "NOW!";
+		}
 		
 		var areClassesCorrect = function(report) {
 			for(var ridx = 0; ridx < report.entries.length; ridx++) {
@@ -22,15 +48,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
 				var javaClassName = javaClassReport.name;
 				var jsClassName = javaClassReport.jsonObjAnnotation;
 				if(jsClassName) {
-					var errorHandler = function(javaClassName) {
+					var failedLoadingErrorHandler = function(javaClassName) {
 						return function() {
 							console.info("Java class with jsonObjectAnnotation missing in Javascript: " + javaClassName);
 						};
 					};
+					
+					var loadedHandler = function(javaClassReport) {
+						return function(jsObject) {
+							standardHandler(javaClassReport, jsObject);
+						};
+					};
+					
 					var requireJsPath = jsClassName.replace(/\./g,'/');
-					require([requireJsPath], function(myclass){
-						var test = "break";
-					}, errorHandler(javaClassName));
+					require([requireJsPath], loadedHandler(javaClassReport), failedLoadingErrorHandler(javaClassName));
 				} else {
 					console.info("Java class missing jsonObjectAnnotation: " + javaClassName);
 				}
-- 
GitLab