diff --git a/.gitignore b/.gitignore
index 4bf99a5..e818e39 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,4 @@
hs_err_pid*
/target/
+/bin/
diff --git a/bin/.gitignore b/bin/.gitignore
deleted file mode 100644
index 24b1944..0000000
--- a/bin/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/com/
-/tercen_java_client/
diff --git a/pom.xml b/pom.xml
index d4c9ff1..cd5215e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- tercen_java_client
+ com.tercen
tercen_java_client
0.0.1-SNAPSHOT
@@ -31,6 +31,11 @@
2.9.8
+
+ commons-io
+ commons-io
+ 2.7
+
diff --git a/src/com/tercen/examples/SelectData.java b/src/com/tercen/examples/SelectData.java
new file mode 100644
index 0000000..8c4c5ab
--- /dev/null
+++ b/src/com/tercen/examples/SelectData.java
@@ -0,0 +1,40 @@
+package com.tercen.examples;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import com.tercen.client.impl.TercenClient;
+import com.tercen.model.impl.Schema;
+import com.tercen.model.impl.Table;
+import com.tercen.service.ServiceError;
+
+public class SelectData {
+
+ private static final String LOCALHOST_URL = "http://10.0.2.2:5402/";
+ private static final String DOMAIN = "tercen";
+ private static final String USERNAME = "test";
+ private static final String PASSWORD = "test";
+ private static final String TABLE_ID = "06b38fe91c2ed72a148b3fa38702b81e";
+
+ public static void main(String[] args) {
+ TercenClient client = new TercenClient(SelectData.LOCALHOST_URL);
+
+ try {
+ client.userService.connect2(DOMAIN, USERNAME, PASSWORD);
+
+ Schema schema = client.tableSchemaService.get(TABLE_ID);
+ List list = schema.columns.stream().map(c -> c.name).collect(Collectors.toList());
+ ArrayList cnames = new ArrayList(list);
+
+ Table result = client.tableSchemaService.select(TABLE_ID, cnames, 0, 100);
+ double[] colvals = (double []) result.columns.get(0).values;
+ for (double d : (double[]) colvals) {
+ System.out.println(d);
+ }
+
+ } catch (ServiceError e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/com/tercen/examples/UploadData.java b/src/com/tercen/examples/UploadData.java
new file mode 100644
index 0000000..5e993a3
--- /dev/null
+++ b/src/com/tercen/examples/UploadData.java
@@ -0,0 +1,52 @@
+package com.tercen.examples;
+
+import java.io.IOException;
+
+import com.tercen.client.impl.TercenClient;
+import com.tercen.model.impl.FileDocument;
+import com.tercen.model.impl.Project;
+import com.tercen.service.ServiceError;
+import com.tercen.util.Utils;
+
+public class UploadData {
+
+ private static final String FILE_NAME = "src/main/resources/crabs-long.csv";
+ private static final String TEAM_NAME = "test-team";
+ private static final String PROJECT_NAME = "myproject";
+ private static final String LOCALHOST_URL = "http://10.0.2.2:5402/";
+ private static final String DOMAIN = "tercen";
+ private static final String USERNAME = "test";
+ private static final String PASSWORD = "test";
+
+ private static String type = "zip"; // either "zip", "csv" or "txt"
+
+ public static void main(String[] args) {
+ TercenClient client = new TercenClient(UploadData.LOCALHOST_URL);
+
+ try {
+ client.userService.connect2(DOMAIN, USERNAME, PASSWORD);
+ final Project project = Utils.getProject(client, TEAM_NAME, PROJECT_NAME);
+
+ if (type.equals("csv")) {
+ FileDocument result = Utils.uploadCsvFile(LOCALHOST_URL, TEAM_NAME, PROJECT_NAME, DOMAIN, USERNAME, PASSWORD, FILE_NAME);
+ System.out.println(result.toJson());
+ System.out.println("CSV file uploaded");
+ } else if (type.equals("zip")) {
+ FileDocument result = Utils.uploadZipFile(LOCALHOST_URL, TEAM_NAME, PROJECT_NAME, DOMAIN, USERNAME, PASSWORD, FILE_NAME);
+ System.out.println(result.toJson());
+ System.out.println("Zip file uploaded");
+ } else if (type.equals("txt")) {
+ FileDocument file = new FileDocument();
+ file.name = "hello.txt";
+ file.projectId = project.id;
+ file = client.fileService.upload(file, "hello".getBytes());
+ System.out.println(file.toJson());
+ System.out.println("Txt file uploaded");
+ }
+ } catch (ServiceError e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/com/tercen/util/Utils.java b/src/com/tercen/util/Utils.java
new file mode 100644
index 0000000..1a20daf
--- /dev/null
+++ b/src/com/tercen/util/Utils.java
@@ -0,0 +1,129 @@
+package com.tercen.util;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Optional;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+import org.apache.commons.io.FileUtils;
+
+import com.tercen.client.impl.TercenClient;
+import com.tercen.model.impl.CSVFileMetadata;
+import com.tercen.model.impl.FileDocument;
+import com.tercen.model.impl.Project;
+import com.tercen.model.impl.ProjectDocument;
+import com.tercen.service.ServiceError;
+
+public class Utils {
+
+ private static final String Separator = "/";
+
+ private static String getFilename(String fullFileName) {
+ String[] filenameParts = fullFileName.replaceAll(Pattern.quote(Utils.Separator), "\\\\").split("\\\\");
+ return filenameParts[filenameParts.length - 1];
+ }
+
+ public static Project getProject(TercenClient client, String teamOrUser, String projectName)
+ throws ServiceError {
+
+ List startKey = List.of(teamOrUser, false, "2000");
+ List endKey = List.of(teamOrUser, false, "2100");
+
+ List projects = client.projectService.findByTeamAndIsPublicAndLastModifiedDate(startKey, endKey, 1000,
+ 0, false, true);
+
+ Optional result = projects.stream().filter(p -> p.name.equals(projectName)).findAny();
+
+ if (result.isPresent()) {
+ return result.get();
+ }
+
+ Project new_project = new Project();
+ new_project.name = projectName;
+ new_project.acl.owner = teamOrUser;
+
+ return client.projectService.create(new_project);
+ }
+
+ private static void removeProjectFileIfExists(TercenClient client, Project project, String filename) throws ServiceError {
+ List projectDocs = client.projectDocumentService.findProjectObjectsByLastModifiedDate(null, null, 100, 0, true, false);
+ if (projectDocs.size() > 0) {
+ projectDocs = projectDocs
+ .stream()
+ .filter(p -> p.projectId.equals(project.id))
+ .filter(p -> p.name.equals(filename))
+ .collect(Collectors.toList());
+
+ projectDocs.forEach(p -> {
+ try {
+ client.fileService.delete(p.id, p.rev);
+ } catch (ServiceError e) {
+ e.printStackTrace();
+ }
+ });
+ }
+ }
+
+ public static FileDocument uploadZipFile(String url, String teamName, String projectName, String domain, String username, String password, String fullFileName) throws ServiceError, IOException {
+ // Write data to tercen
+ TercenClient client = new TercenClient(url);
+ client.userService.connect2(domain, username, password);
+ Project project = getProject(client, teamName, projectName);
+
+ FileDocument fileDoc = new FileDocument();
+ String filename = getFilename(fullFileName);
+ int index = filename.lastIndexOf(".");
+ String ext = filename.substring(index);
+ String outFilename = filename.replace(ext, ".zip");
+ fileDoc.name = outFilename;
+ fileDoc.projectId = project.id;
+ fileDoc.acl.owner = project.acl.owner;
+ fileDoc.metadata.contentType = "application/zip";
+ fileDoc.metadata.contentEncoding = "zip,iso-8859-1";
+ File file = new File(fullFileName);
+
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ZipOutputStream zos = new ZipOutputStream(bos);
+ ZipEntry entry = new ZipEntry(file.getName());
+ byte[] bytes = FileUtils.readFileToByteArray(file);
+ zos.putNextEntry(entry);
+ zos.write(bytes, 0, bytes.length);
+ zos.closeEntry();
+ zos.close();
+
+ byte[] zipBytes = bos.toByteArray();
+ bos.close();
+ // remove existing file and upload new file
+ removeProjectFileIfExists(client, project, outFilename);
+ return client.fileService.upload(fileDoc, zipBytes);
+ }
+
+ public static FileDocument uploadCsvFile(String url, String teamName, String projectName, String domain, String username, String password, String fullFileName) throws ServiceError, IOException {
+ // Write data to tercen
+ TercenClient client = new TercenClient(url);
+ client.userService.connect2(domain, username, password);
+ Project project = getProject(client, teamName, projectName);
+
+ FileDocument fileDoc = new FileDocument();
+ String filename = getFilename(fullFileName);
+ fileDoc.name = filename;
+ fileDoc.projectId = project.id;
+ fileDoc.acl.owner = project.acl.owner;
+ fileDoc.metadata = new CSVFileMetadata();
+ fileDoc.metadata.contentType = "text/csv";
+ ((CSVFileMetadata) fileDoc.metadata).separator = ",";
+ ((CSVFileMetadata) fileDoc.metadata).quote = "\"";
+ fileDoc.metadata.contentEncoding = "iso-8859-1";
+ File file = new File(fullFileName);
+ byte[] bytes = FileUtils.readFileToByteArray(file);
+
+ // remove existing file and upload new file
+ removeProjectFileIfExists(client, project, filename);
+ return client.fileService.upload(fileDoc, bytes);
+ }
+}
diff --git a/src/main/resources/crabs-long.csv b/src/main/resources/crabs-long.csv
new file mode 100755
index 0000000..efd06a6
--- /dev/null
+++ b/src/main/resources/crabs-long.csv
@@ -0,0 +1,1001 @@
+sp,sex,index,observation,variable,measurement
+B,M,1,1,FL,8.1
+B,M,2,2,FL,8.8
+B,M,3,3,FL,9.2
+B,M,4,4,FL,9.6
+B,M,5,5,FL,9.8
+B,M,6,6,FL,10.8
+B,M,7,7,FL,11.1
+B,M,8,8,FL,11.6
+B,M,9,9,FL,11.8
+B,M,10,10,FL,11.8
+B,M,11,11,FL,12.2
+B,M,12,12,FL,12.3
+B,M,13,13,FL,12.6
+B,M,14,14,FL,12.8
+B,M,15,15,FL,12.8
+B,M,16,16,FL,12.9
+B,M,17,17,FL,13.1
+B,M,18,18,FL,13.1
+B,M,19,19,FL,13.3
+B,M,20,20,FL,13.9
+B,M,21,21,FL,14.3
+B,M,22,22,FL,14.6
+B,M,23,23,FL,15
+B,M,24,24,FL,15
+B,M,25,25,FL,15
+B,M,26,26,FL,15.2
+B,M,27,27,FL,15.4
+B,M,28,28,FL,15.7
+B,M,29,29,FL,15.9
+B,M,30,30,FL,16.1
+B,M,31,31,FL,16.1
+B,M,32,32,FL,16.2
+B,M,33,33,FL,16.3
+B,M,34,34,FL,16.4
+B,M,35,35,FL,16.6
+B,M,36,36,FL,16.8
+B,M,37,37,FL,16.9
+B,M,38,38,FL,17.1
+B,M,39,39,FL,17.1
+B,M,40,40,FL,17.2
+B,M,41,41,FL,17.7
+B,M,42,42,FL,17.9
+B,M,43,43,FL,18
+B,M,44,44,FL,18.8
+B,M,45,45,FL,19.3
+B,M,46,46,FL,19.3
+B,M,47,47,FL,19.7
+B,M,48,48,FL,19.8
+B,M,49,49,FL,19.8
+B,M,50,50,FL,21.3
+B,F,1,51,FL,7.2
+B,F,2,52,FL,9
+B,F,3,53,FL,9.1
+B,F,4,54,FL,9.1
+B,F,5,55,FL,9.5
+B,F,6,56,FL,9.8
+B,F,7,57,FL,10.1
+B,F,8,58,FL,10.3
+B,F,9,59,FL,10.4
+B,F,10,60,FL,10.8
+B,F,11,61,FL,11
+B,F,12,62,FL,11.2
+B,F,13,63,FL,11.5
+B,F,14,64,FL,11.6
+B,F,15,65,FL,11.6
+B,F,16,66,FL,11.7
+B,F,17,67,FL,11.9
+B,F,18,68,FL,12
+B,F,19,69,FL,12
+B,F,20,70,FL,12.6
+B,F,21,71,FL,12.8
+B,F,22,72,FL,12.8
+B,F,23,73,FL,12.8
+B,F,24,74,FL,13
+B,F,25,75,FL,13.1
+B,F,26,76,FL,13.2
+B,F,27,77,FL,13.4
+B,F,28,78,FL,13.7
+B,F,29,79,FL,13.9
+B,F,30,80,FL,14.7
+B,F,31,81,FL,14.9
+B,F,32,82,FL,15
+B,F,33,83,FL,15
+B,F,34,84,FL,15.1
+B,F,35,85,FL,15.1
+B,F,36,86,FL,15.1
+B,F,37,87,FL,15.2
+B,F,38,88,FL,15.3
+B,F,39,89,FL,15.4
+B,F,40,90,FL,15.5
+B,F,41,91,FL,15.6
+B,F,42,92,FL,15.6
+B,F,43,93,FL,15.7
+B,F,44,94,FL,15.8
+B,F,45,95,FL,16.2
+B,F,46,96,FL,16.4
+B,F,47,97,FL,16.7
+B,F,48,98,FL,17.4
+B,F,49,99,FL,17.5
+B,F,50,100,FL,19.2
+O,M,1,101,FL,9.1
+O,M,2,102,FL,10.2
+O,M,3,103,FL,10.7
+O,M,4,104,FL,11.4
+O,M,5,105,FL,12.5
+O,M,6,106,FL,12.5
+O,M,7,107,FL,12.7
+O,M,8,108,FL,13.2
+O,M,9,109,FL,13.4
+O,M,10,110,FL,13.7
+O,M,11,111,FL,14
+O,M,12,112,FL,14.1
+O,M,13,113,FL,14.1
+O,M,14,114,FL,14.1
+O,M,15,115,FL,14.2
+O,M,16,116,FL,14.2
+O,M,17,117,FL,14.2
+O,M,18,118,FL,14.6
+O,M,19,119,FL,14.7
+O,M,20,120,FL,15.1
+O,M,21,121,FL,15.1
+O,M,22,122,FL,15.4
+O,M,23,123,FL,15.7
+O,M,24,124,FL,16.2
+O,M,25,125,FL,16.3
+O,M,26,126,FL,17.1
+O,M,27,127,FL,17.4
+O,M,28,128,FL,17.5
+O,M,29,129,FL,17.5
+O,M,30,130,FL,17.8
+O,M,31,131,FL,17.9
+O,M,32,132,FL,18
+O,M,33,133,FL,18.2
+O,M,34,134,FL,18.4
+O,M,35,135,FL,18.6
+O,M,36,136,FL,18.6
+O,M,37,137,FL,18.8
+O,M,38,138,FL,18.8
+O,M,39,139,FL,19.4
+O,M,40,140,FL,19.4
+O,M,41,141,FL,20.1
+O,M,42,142,FL,20.6
+O,M,43,143,FL,21
+O,M,44,144,FL,21.5
+O,M,45,145,FL,21.6
+O,M,46,146,FL,21.6
+O,M,47,147,FL,21.9
+O,M,48,148,FL,22.1
+O,M,49,149,FL,23
+O,M,50,150,FL,23.1
+O,F,1,151,FL,10.7
+O,F,2,152,FL,11.4
+O,F,3,153,FL,12.5
+O,F,4,154,FL,12.6
+O,F,5,155,FL,12.9
+O,F,6,156,FL,14
+O,F,7,157,FL,14
+O,F,8,158,FL,14.3
+O,F,9,159,FL,14.7
+O,F,10,160,FL,14.9
+O,F,11,161,FL,15
+O,F,12,162,FL,15.6
+O,F,13,163,FL,15.6
+O,F,14,164,FL,15.6
+O,F,15,165,FL,15.7
+O,F,16,166,FL,16.1
+O,F,17,167,FL,16.1
+O,F,18,168,FL,16.2
+O,F,19,169,FL,16.7
+O,F,20,170,FL,17.1
+O,F,21,171,FL,17.5
+O,F,22,172,FL,17.5
+O,F,23,173,FL,17.5
+O,F,24,174,FL,17.6
+O,F,25,175,FL,18
+O,F,26,176,FL,18
+O,F,27,177,FL,18.3
+O,F,28,178,FL,18.4
+O,F,29,179,FL,18.4
+O,F,30,180,FL,18.5
+O,F,31,181,FL,18.6
+O,F,32,182,FL,18.8
+O,F,33,183,FL,18.9
+O,F,34,184,FL,19.1
+O,F,35,185,FL,19.1
+O,F,36,186,FL,19.7
+O,F,37,187,FL,19.9
+O,F,38,188,FL,19.9
+O,F,39,189,FL,20
+O,F,40,190,FL,20.1
+O,F,41,191,FL,20.3
+O,F,42,192,FL,20.5
+O,F,43,193,FL,20.6
+O,F,44,194,FL,20.9
+O,F,45,195,FL,21.3
+O,F,46,196,FL,21.4
+O,F,47,197,FL,21.7
+O,F,48,198,FL,21.9
+O,F,49,199,FL,22.5
+O,F,50,200,FL,23.1
+B,M,1,1,RW,6.7
+B,M,2,2,RW,7.7
+B,M,3,3,RW,7.8
+B,M,4,4,RW,7.9
+B,M,5,5,RW,8
+B,M,6,6,RW,9
+B,M,7,7,RW,9.9
+B,M,8,8,RW,9.1
+B,M,9,9,RW,9.6
+B,M,10,10,RW,10.5
+B,M,11,11,RW,10.8
+B,M,12,12,RW,11
+B,M,13,13,RW,10
+B,M,14,14,RW,10.2
+B,M,15,15,RW,10.9
+B,M,16,16,RW,11
+B,M,17,17,RW,10.6
+B,M,18,18,RW,10.9
+B,M,19,19,RW,11.1
+B,M,20,20,RW,11.1
+B,M,21,21,RW,11.6
+B,M,22,22,RW,11.3
+B,M,23,23,RW,10.9
+B,M,24,24,RW,11.5
+B,M,25,25,RW,11.9
+B,M,26,26,RW,12.1
+B,M,27,27,RW,11.8
+B,M,28,28,RW,12.6
+B,M,29,29,RW,12.7
+B,M,30,30,RW,11.6
+B,M,31,31,RW,12.8
+B,M,32,32,RW,13.3
+B,M,33,33,RW,12.7
+B,M,34,34,RW,13
+B,M,35,35,RW,13.5
+B,M,36,36,RW,12.8
+B,M,37,37,RW,13.2
+B,M,38,38,RW,12.6
+B,M,39,39,RW,12.7
+B,M,40,40,RW,13.5
+B,M,41,41,RW,13.6
+B,M,42,42,RW,14.1
+B,M,43,43,RW,13.7
+B,M,44,44,RW,15.8
+B,M,45,45,RW,13.5
+B,M,46,46,RW,13.8
+B,M,47,47,RW,15.3
+B,M,48,48,RW,14.2
+B,M,49,49,RW,14.3
+B,M,50,50,RW,15.7
+B,F,1,51,RW,6.5
+B,F,2,52,RW,8.5
+B,F,3,53,RW,8.1
+B,F,4,54,RW,8.2
+B,F,5,55,RW,8.2
+B,F,6,56,RW,8.9
+B,F,7,57,RW,9.3
+B,F,8,58,RW,9.5
+B,F,9,59,RW,9.7
+B,F,10,60,RW,9.5
+B,F,11,61,RW,9.8
+B,F,12,62,RW,10
+B,F,13,63,RW,11
+B,F,14,64,RW,11
+B,F,15,65,RW,11.4
+B,F,16,66,RW,10.6
+B,F,17,67,RW,11.4
+B,F,18,68,RW,10.7
+B,F,19,69,RW,11.1
+B,F,20,70,RW,12.2
+B,F,21,71,RW,11.7
+B,F,22,72,RW,12.2
+B,F,23,73,RW,12.2
+B,F,24,74,RW,11.4
+B,F,25,75,RW,11.5
+B,F,26,76,RW,12.2
+B,F,27,77,RW,11.8
+B,F,28,78,RW,12.5
+B,F,29,79,RW,13
+B,F,30,80,RW,12.5
+B,F,31,81,RW,13.2
+B,F,32,82,RW,13.8
+B,F,33,83,RW,14.2
+B,F,34,84,RW,13.3
+B,F,35,85,RW,13.5
+B,F,36,86,RW,13.8
+B,F,37,87,RW,14.3
+B,F,38,88,RW,14.2
+B,F,39,89,RW,13.3
+B,F,40,90,RW,13.8
+B,F,41,91,RW,13.9
+B,F,42,92,RW,14.7
+B,F,43,93,RW,13.9
+B,F,44,94,RW,15
+B,F,45,95,RW,15.2
+B,F,46,96,RW,14
+B,F,47,97,RW,16.1
+B,F,48,98,RW,16.9
+B,F,49,99,RW,16.7
+B,F,50,100,RW,16.5
+O,M,1,101,RW,6.9
+O,M,2,102,RW,8.2
+O,M,3,103,RW,8.6
+O,M,4,104,RW,9
+O,M,5,105,RW,9.4
+O,M,6,106,RW,9.4
+O,M,7,107,RW,10.4
+O,M,8,108,RW,11
+O,M,9,109,RW,10.1
+O,M,10,110,RW,11
+O,M,11,111,RW,11.5
+O,M,12,112,RW,10.4
+O,M,13,113,RW,10.5
+O,M,14,114,RW,10.7
+O,M,15,115,RW,10.6
+O,M,16,116,RW,10.7
+O,M,17,117,RW,11.3
+O,M,18,118,RW,11.3
+O,M,19,119,RW,11.1
+O,M,20,120,RW,11.4
+O,M,21,121,RW,11.5
+O,M,22,122,RW,11.1
+O,M,23,123,RW,12.2
+O,M,24,124,RW,11.8
+O,M,25,125,RW,11.6
+O,M,26,126,RW,12.6
+O,M,27,127,RW,12.8
+O,M,28,128,RW,12
+O,M,29,129,RW,12.7
+O,M,30,130,RW,12.5
+O,M,31,131,RW,12.9
+O,M,32,132,RW,13.4
+O,M,33,133,RW,13.7
+O,M,34,134,RW,13.4
+O,M,35,135,RW,13.4
+O,M,36,136,RW,13.5
+O,M,37,137,RW,13.4
+O,M,38,138,RW,13.8
+O,M,39,139,RW,14.1
+O,M,40,140,RW,14.4
+O,M,41,141,RW,13.7
+O,M,42,142,RW,14.4
+O,M,43,143,RW,15
+O,M,44,144,RW,15.5
+O,M,45,145,RW,15.4
+O,M,46,146,RW,14.8
+O,M,47,147,RW,15.7
+O,M,48,148,RW,15.8
+O,M,49,149,RW,16.8
+O,M,50,150,RW,15.7
+O,F,1,151,RW,9.7
+O,F,2,152,RW,9.2
+O,F,3,153,RW,10
+O,F,4,154,RW,11.5
+O,F,5,155,RW,11.2
+O,F,6,156,RW,11.9
+O,F,7,157,RW,12.8
+O,F,8,158,RW,12.2
+O,F,9,159,RW,13.2
+O,F,10,160,RW,13
+O,F,11,161,RW,12.3
+O,F,12,162,RW,13.5
+O,F,13,163,RW,14
+O,F,14,164,RW,14.1
+O,F,15,165,RW,13.6
+O,F,16,166,RW,13.6
+O,F,17,167,RW,13.7
+O,F,18,168,RW,14
+O,F,19,169,RW,14.3
+O,F,20,170,RW,14.5
+O,F,21,171,RW,14.3
+O,F,22,172,RW,14.4
+O,F,23,173,RW,14.7
+O,F,24,174,RW,14
+O,F,25,175,RW,14.9
+O,F,26,176,RW,16.3
+O,F,27,177,RW,15.7
+O,F,28,178,RW,15.5
+O,F,29,179,RW,15.7
+O,F,30,180,RW,14.6
+O,F,31,181,RW,14.5
+O,F,32,182,RW,15.2
+O,F,33,183,RW,16.7
+O,F,34,184,RW,16
+O,F,35,185,RW,16.3
+O,F,36,186,RW,16.7
+O,F,37,187,RW,16.6
+O,F,38,188,RW,17.9
+O,F,39,189,RW,16.7
+O,F,40,190,RW,17.2
+O,F,41,191,RW,16
+O,F,42,192,RW,17.5
+O,F,43,193,RW,17.5
+O,F,44,194,RW,16.5
+O,F,45,195,RW,18.4
+O,F,46,196,RW,18
+O,F,47,197,RW,17.1
+O,F,48,198,RW,17.2
+O,F,49,199,RW,17.2
+O,F,50,200,RW,20.2
+B,M,1,1,CL,16.1
+B,M,2,2,CL,18.1
+B,M,3,3,CL,19
+B,M,4,4,CL,20.1
+B,M,5,5,CL,20.3
+B,M,6,6,CL,23
+B,M,7,7,CL,23.8
+B,M,8,8,CL,24.5
+B,M,9,9,CL,24.2
+B,M,10,10,CL,25.2
+B,M,11,11,CL,27.3
+B,M,12,12,CL,26.8
+B,M,13,13,CL,27.7
+B,M,14,14,CL,27.2
+B,M,15,15,CL,27.4
+B,M,16,16,CL,26.8
+B,M,17,17,CL,28.2
+B,M,18,18,CL,28.3
+B,M,19,19,CL,27.8
+B,M,20,20,CL,29.2
+B,M,21,21,CL,31.3
+B,M,22,22,CL,31.9
+B,M,23,23,CL,31.4
+B,M,24,24,CL,32.4
+B,M,25,25,CL,32.5
+B,M,26,26,CL,32.3
+B,M,27,27,CL,33
+B,M,28,28,CL,35.8
+B,M,29,29,CL,34
+B,M,30,30,CL,33.8
+B,M,31,31,CL,34.9
+B,M,32,32,CL,36
+B,M,33,33,CL,35.6
+B,M,34,34,CL,35.7
+B,M,35,35,CL,38.1
+B,M,36,36,CL,36.2
+B,M,37,37,CL,37.3
+B,M,38,38,CL,36.4
+B,M,39,39,CL,36.7
+B,M,40,40,CL,37.6
+B,M,41,41,CL,38.7
+B,M,42,42,CL,39.7
+B,M,43,43,CL,39.2
+B,M,44,44,CL,42.1
+B,M,45,45,CL,41.6
+B,M,46,46,CL,40.9
+B,M,47,47,CL,41.9
+B,M,48,48,CL,43.2
+B,M,49,49,CL,42.4
+B,M,50,50,CL,47.1
+B,F,1,51,CL,14.7
+B,F,2,52,CL,19.3
+B,F,3,53,CL,18.5
+B,F,4,54,CL,19.2
+B,F,5,55,CL,19.6
+B,F,6,56,CL,20.4
+B,F,7,57,CL,20.9
+B,F,8,58,CL,21.3
+B,F,9,59,CL,21.7
+B,F,10,60,CL,22.5
+B,F,11,61,CL,22.5
+B,F,12,62,CL,22.8
+B,F,13,63,CL,24.7
+B,F,14,64,CL,24.6
+B,F,15,65,CL,23.7
+B,F,16,66,CL,24.9
+B,F,17,67,CL,26
+B,F,18,68,CL,24.6
+B,F,19,69,CL,25.4
+B,F,20,70,CL,26.1
+B,F,21,71,CL,27.1
+B,F,22,72,CL,26.7
+B,F,23,73,CL,27.9
+B,F,24,74,CL,27.3
+B,F,25,75,CL,27.6
+B,F,26,76,CL,27.9
+B,F,27,77,CL,28.4
+B,F,28,78,CL,28.6
+B,F,29,79,CL,30
+B,F,30,80,CL,30.1
+B,F,31,81,CL,30.1
+B,F,32,82,CL,31.7
+B,F,33,83,CL,32.8
+B,F,34,84,CL,31.8
+B,F,35,85,CL,31.9
+B,F,36,86,CL,31.7
+B,F,37,87,CL,33.9
+B,F,38,88,CL,32.6
+B,F,39,89,CL,32.4
+B,F,40,90,CL,33.4
+B,F,41,91,CL,32.8
+B,F,42,92,CL,33.9
+B,F,43,93,CL,33.6
+B,F,44,94,CL,34.5
+B,F,45,95,CL,34.5
+B,F,46,96,CL,34.2
+B,F,47,97,CL,36.6
+B,F,48,98,CL,38.2
+B,F,49,99,CL,38.6
+B,F,50,100,CL,40.9
+O,M,1,101,CL,16.7
+O,M,2,102,CL,20.2
+O,M,3,103,CL,20.7
+O,M,4,104,CL,22.7
+O,M,5,105,CL,23.2
+O,M,6,106,CL,24.2
+O,M,7,107,CL,26
+O,M,8,108,CL,27.1
+O,M,9,109,CL,26.6
+O,M,10,110,CL,27.5
+O,M,11,111,CL,29.2
+O,M,12,112,CL,28.9
+O,M,13,113,CL,29.1
+O,M,14,114,CL,28.7
+O,M,15,115,CL,28.7
+O,M,16,116,CL,27.8
+O,M,17,117,CL,29.2
+O,M,18,118,CL,29.9
+O,M,19,119,CL,29
+O,M,20,120,CL,30.2
+O,M,21,121,CL,30.9
+O,M,22,122,CL,30.2
+O,M,23,123,CL,31.7
+O,M,24,124,CL,32.3
+O,M,25,125,CL,31.6
+O,M,26,126,CL,35
+O,M,27,127,CL,36.1
+O,M,28,128,CL,34.4
+O,M,29,129,CL,34.6
+O,M,30,130,CL,36
+O,M,31,131,CL,36.9
+O,M,32,132,CL,36.7
+O,M,33,133,CL,38.8
+O,M,34,134,CL,37.9
+O,M,35,135,CL,37.8
+O,M,36,136,CL,36.9
+O,M,37,137,CL,37.2
+O,M,38,138,CL,39.2
+O,M,39,139,CL,39.1
+O,M,40,140,CL,39.8
+O,M,41,141,CL,40.6
+O,M,42,142,CL,42.8
+O,M,43,143,CL,42.9
+O,M,44,144,CL,45.5
+O,M,45,145,CL,45.7
+O,M,46,146,CL,43.4
+O,M,47,147,CL,45.4
+O,M,48,148,CL,44.6
+O,M,49,149,CL,47.2
+O,M,50,150,CL,47.6
+O,F,1,151,CL,21.4
+O,F,2,152,CL,21.7
+O,F,3,153,CL,24.1
+O,F,4,154,CL,25
+O,F,5,155,CL,25.8
+O,F,6,156,CL,27
+O,F,7,157,CL,28.8
+O,F,8,158,CL,28.1
+O,F,9,159,CL,29.6
+O,F,10,160,CL,30
+O,F,11,161,CL,30.1
+O,F,12,162,CL,31.2
+O,F,13,163,CL,31.6
+O,F,14,164,CL,31
+O,F,15,165,CL,31
+O,F,16,166,CL,31.6
+O,F,17,167,CL,31.4
+O,F,18,168,CL,31.6
+O,F,19,169,CL,32.3
+O,F,20,170,CL,33.1
+O,F,21,171,CL,34.5
+O,F,22,172,CL,34.5
+O,F,23,173,CL,33.3
+O,F,24,174,CL,34
+O,F,25,175,CL,34.7
+O,F,26,176,CL,37.9
+O,F,27,177,CL,35.1
+O,F,28,178,CL,35.6
+O,F,29,179,CL,36.5
+O,F,30,180,CL,37
+O,F,31,181,CL,34.7
+O,F,32,182,CL,35.8
+O,F,33,183,CL,36.3
+O,F,34,184,CL,37.8
+O,F,35,185,CL,37.9
+O,F,36,186,CL,39.9
+O,F,37,187,CL,39.4
+O,F,38,188,CL,40.1
+O,F,39,189,CL,40.4
+O,F,40,190,CL,39.8
+O,F,41,191,CL,39.4
+O,F,42,192,CL,40
+O,F,43,193,CL,41.5
+O,F,44,194,CL,39.9
+O,F,45,195,CL,43.8
+O,F,46,196,CL,41.2
+O,F,47,197,CL,41.7
+O,F,48,198,CL,42.6
+O,F,49,199,CL,43
+O,F,50,200,CL,46.2
+B,M,1,1,CW,19
+B,M,2,2,CW,20.8
+B,M,3,3,CW,22.4
+B,M,4,4,CW,23.1
+B,M,5,5,CW,23
+B,M,6,6,CW,26.5
+B,M,7,7,CW,27.1
+B,M,8,8,CW,28.4
+B,M,9,9,CW,27.8
+B,M,10,10,CW,29.3
+B,M,11,11,CW,31.6
+B,M,12,12,CW,31.5
+B,M,13,13,CW,31.7
+B,M,14,14,CW,31.8
+B,M,15,15,CW,31.5
+B,M,16,16,CW,30.9
+B,M,17,17,CW,32.3
+B,M,18,18,CW,32.4
+B,M,19,19,CW,32.3
+B,M,20,20,CW,33.3
+B,M,21,21,CW,35.5
+B,M,22,22,CW,36.4
+B,M,23,23,CW,36.4
+B,M,24,24,CW,37
+B,M,25,25,CW,37.2
+B,M,26,26,CW,36.7
+B,M,27,27,CW,37.5
+B,M,28,28,CW,40.3
+B,M,29,29,CW,38.9
+B,M,30,30,CW,39
+B,M,31,31,CW,40.7
+B,M,32,32,CW,41.7
+B,M,33,33,CW,40.9
+B,M,34,34,CW,41.8
+B,M,35,35,CW,43.4
+B,M,36,36,CW,41.8
+B,M,37,37,CW,42.7
+B,M,38,38,CW,42
+B,M,39,39,CW,41.9
+B,M,40,40,CW,43.9
+B,M,41,41,CW,44.5
+B,M,42,42,CW,44.6
+B,M,43,43,CW,44.4
+B,M,44,44,CW,49
+B,M,45,45,CW,47.4
+B,M,46,46,CW,46.5
+B,M,47,47,CW,48.5
+B,M,48,48,CW,49.7
+B,M,49,49,CW,48.9
+B,M,50,50,CW,54.6
+B,F,1,51,CW,17.1
+B,F,2,52,CW,22.7
+B,F,3,53,CW,21.6
+B,F,4,54,CW,22.2
+B,F,5,55,CW,22.4
+B,F,6,56,CW,23.9
+B,F,7,57,CW,24.4
+B,F,8,58,CW,24.7
+B,F,9,59,CW,25.4
+B,F,10,60,CW,26.3
+B,F,11,61,CW,25.7
+B,F,12,62,CW,26.9
+B,F,13,63,CW,29.2
+B,F,14,64,CW,28.5
+B,F,15,65,CW,27.7
+B,F,16,66,CW,28.5
+B,F,17,67,CW,30.1
+B,F,18,68,CW,28.9
+B,F,19,69,CW,29.2
+B,F,20,70,CW,31.6
+B,F,21,71,CW,31.2
+B,F,22,72,CW,31.1
+B,F,23,73,CW,31.9
+B,F,24,74,CW,31.8
+B,F,25,75,CW,32.6
+B,F,26,76,CW,32.1
+B,F,27,77,CW,32.7
+B,F,28,78,CW,33.8
+B,F,29,79,CW,34.9
+B,F,30,80,CW,34.7
+B,F,31,81,CW,35.6
+B,F,32,82,CW,36.9
+B,F,33,83,CW,37.4
+B,F,34,84,CW,36.3
+B,F,35,85,CW,37
+B,F,36,86,CW,36.6
+B,F,37,87,CW,38.5
+B,F,38,88,CW,38.3
+B,F,39,89,CW,37.6
+B,F,40,90,CW,38.7
+B,F,41,91,CW,37.9
+B,F,42,92,CW,39.5
+B,F,43,93,CW,38.5
+B,F,44,94,CW,40.3
+B,F,45,95,CW,40.1
+B,F,46,96,CW,39.8
+B,F,47,97,CW,41.9
+B,F,48,98,CW,44.1
+B,F,49,99,CW,44.5
+B,F,50,100,CW,47.9
+O,M,1,101,CW,18.6
+O,M,2,102,CW,22.2
+O,M,3,103,CW,22.7
+O,M,4,104,CW,24.8
+O,M,5,105,CW,26
+O,M,6,106,CW,27
+O,M,7,107,CW,28.8
+O,M,8,108,CW,30.4
+O,M,9,109,CW,29.6
+O,M,10,110,CW,30.5
+O,M,11,111,CW,32.2
+O,M,12,112,CW,31.8
+O,M,13,113,CW,31.6
+O,M,14,114,CW,31.9
+O,M,15,115,CW,31.7
+O,M,16,116,CW,30.9
+O,M,17,117,CW,32.2
+O,M,18,118,CW,33.5
+O,M,19,119,CW,32.1
+O,M,20,120,CW,33.3
+O,M,21,121,CW,34
+O,M,22,122,CW,33.6
+O,M,23,123,CW,34.2
+O,M,24,124,CW,35.3
+O,M,25,125,CW,34.2
+O,M,26,126,CW,38.9
+O,M,27,127,CW,39.5
+O,M,28,128,CW,37.3
+O,M,29,129,CW,38.4
+O,M,30,130,CW,39.8
+O,M,31,131,CW,40.9
+O,M,32,132,CW,41.3
+O,M,33,133,CW,42.7
+O,M,34,134,CW,42.2
+O,M,35,135,CW,41.9
+O,M,36,136,CW,40.2
+O,M,37,137,CW,41.1
+O,M,38,138,CW,43.3
+O,M,39,139,CW,43.2
+O,M,40,140,CW,44.3
+O,M,41,141,CW,44.5
+O,M,42,142,CW,46.5
+O,M,43,143,CW,47.2
+O,M,44,144,CW,49.7
+O,M,45,145,CW,49.7
+O,M,46,146,CW,48.2
+O,M,47,147,CW,51
+O,M,48,148,CW,49.6
+O,M,49,149,CW,52.1
+O,M,50,150,CW,52.8
+O,F,1,151,CW,24
+O,F,2,152,CW,24.1
+O,F,3,153,CW,27
+O,F,4,154,CW,28.1
+O,F,5,155,CW,29.1
+O,F,6,156,CW,31.4
+O,F,7,157,CW,32.4
+O,F,8,158,CW,31.8
+O,F,9,159,CW,33.4
+O,F,10,160,CW,33.7
+O,F,11,161,CW,33.3
+O,F,12,162,CW,35.1
+O,F,13,163,CW,35.3
+O,F,14,164,CW,34.5
+O,F,15,165,CW,34.8
+O,F,16,166,CW,36
+O,F,17,167,CW,36.1
+O,F,18,168,CW,35.6
+O,F,19,169,CW,37
+O,F,20,170,CW,37.2
+O,F,21,171,CW,39.6
+O,F,22,172,CW,39
+O,F,23,173,CW,37.6
+O,F,24,174,CW,38.6
+O,F,25,175,CW,39.5
+O,F,26,176,CW,43
+O,F,27,177,CW,40.5
+O,F,28,178,CW,40
+O,F,29,179,CW,41.6
+O,F,30,180,CW,42
+O,F,31,181,CW,39.4
+O,F,32,182,CW,40.5
+O,F,33,183,CW,41.7
+O,F,34,184,CW,42.3
+O,F,35,185,CW,42.6
+O,F,36,186,CW,43.6
+O,F,37,187,CW,43.9
+O,F,38,188,CW,46.4
+O,F,39,189,CW,45.1
+O,F,40,190,CW,44.1
+O,F,41,191,CW,44.1
+O,F,42,192,CW,45.5
+O,F,43,193,CW,46.2
+O,F,44,194,CW,44.7
+O,F,45,195,CW,48.4
+O,F,46,196,CW,46.2
+O,F,47,197,CW,47.2
+O,F,48,198,CW,47.4
+O,F,49,199,CW,48.7
+O,F,50,200,CW,52.5
+B,M,1,1,BD,7
+B,M,2,2,BD,7.4
+B,M,3,3,BD,7.7
+B,M,4,4,BD,8.2
+B,M,5,5,BD,8.2
+B,M,6,6,BD,9.8
+B,M,7,7,BD,9.8
+B,M,8,8,BD,10.4
+B,M,9,9,BD,9.7
+B,M,10,10,BD,10.3
+B,M,11,11,BD,10.9
+B,M,12,12,BD,11.4
+B,M,13,13,BD,11.4
+B,M,14,14,BD,10.9
+B,M,15,15,BD,11
+B,M,16,16,BD,11.4
+B,M,17,17,BD,11
+B,M,18,18,BD,11.2
+B,M,19,19,BD,11.3
+B,M,20,20,BD,12.1
+B,M,21,21,BD,12.7
+B,M,22,22,BD,13.7
+B,M,23,23,BD,13.2
+B,M,24,24,BD,13.4
+B,M,25,25,BD,13.6
+B,M,26,26,BD,13.6
+B,M,27,27,BD,13.6
+B,M,28,28,BD,14.5
+B,M,29,29,BD,14.2
+B,M,30,30,BD,14.4
+B,M,31,31,BD,15.7
+B,M,32,32,BD,15.4
+B,M,33,33,BD,14.9
+B,M,34,34,BD,15.2
+B,M,35,35,BD,14.9
+B,M,36,36,BD,14.9
+B,M,37,37,BD,15.6
+B,M,38,38,BD,15.1
+B,M,39,39,BD,15.6
+B,M,40,40,BD,16.1
+B,M,41,41,BD,16
+B,M,42,42,BD,16.8
+B,M,43,43,BD,16.2
+B,M,44,44,BD,17.8
+B,M,45,45,BD,17.8
+B,M,46,46,BD,16.8
+B,M,47,47,BD,17.8
+B,M,48,48,BD,18.6
+B,M,49,49,BD,18.3
+B,M,50,50,BD,20
+B,F,1,51,BD,6.1
+B,F,2,52,BD,7.7
+B,F,3,53,BD,7.7
+B,F,4,54,BD,7.7
+B,F,5,55,BD,7.8
+B,F,6,56,BD,8.8
+B,F,7,57,BD,8.4
+B,F,8,58,BD,8.9
+B,F,9,59,BD,8.3
+B,F,10,60,BD,9.1
+B,F,11,61,BD,8.2
+B,F,12,62,BD,9.4
+B,F,13,63,BD,10.1
+B,F,14,64,BD,10.4
+B,F,15,65,BD,10
+B,F,16,66,BD,10.4
+B,F,17,67,BD,10.9
+B,F,18,68,BD,10.5
+B,F,19,69,BD,11
+B,F,20,70,BD,11.2
+B,F,21,71,BD,11.9
+B,F,22,72,BD,11.1
+B,F,23,73,BD,11.5
+B,F,24,74,BD,11.3
+B,F,25,75,BD,11.1
+B,F,26,76,BD,11.5
+B,F,27,77,BD,11.7
+B,F,28,78,BD,11.9
+B,F,29,79,BD,13.1
+B,F,30,80,BD,12.5
+B,F,31,81,BD,12
+B,F,32,82,BD,14
+B,F,33,83,BD,14
+B,F,34,84,BD,13.5
+B,F,35,85,BD,13.8
+B,F,36,86,BD,13
+B,F,37,87,BD,14.7
+B,F,38,88,BD,13.8
+B,F,39,89,BD,13.8
+B,F,40,90,BD,14.7
+B,F,41,91,BD,13.4
+B,F,42,92,BD,14.3
+B,F,43,93,BD,14.1
+B,F,44,94,BD,15.3
+B,F,45,95,BD,13.9
+B,F,46,96,BD,15.2
+B,F,47,97,BD,15.4
+B,F,48,98,BD,16.6
+B,F,49,99,BD,17
+B,F,50,100,BD,18.1
+O,M,1,101,BD,7.4
+O,M,2,102,BD,9
+O,M,3,103,BD,9.2
+O,M,4,104,BD,10.1
+O,M,5,105,BD,10.8
+O,M,6,106,BD,11.2
+O,M,7,107,BD,12.1
+O,M,8,108,BD,12.2
+O,M,9,109,BD,12
+O,M,10,110,BD,12.2
+O,M,11,111,BD,13.1
+O,M,12,112,BD,13.5
+O,M,13,113,BD,13.1
+O,M,14,114,BD,13.3
+O,M,15,115,BD,12.9
+O,M,16,116,BD,12.7
+O,M,17,117,BD,13.5
+O,M,18,118,BD,12.8
+O,M,19,119,BD,13.1
+O,M,20,120,BD,14
+O,M,21,121,BD,13.9
+O,M,22,122,BD,13.5
+O,M,23,123,BD,14.2
+O,M,24,124,BD,14.7
+O,M,25,125,BD,14.5
+O,M,26,126,BD,15.7
+O,M,27,127,BD,16.2
+O,M,28,128,BD,15.3
+O,M,29,129,BD,16.1
+O,M,30,130,BD,16.7
+O,M,31,131,BD,16.5
+O,M,32,132,BD,17.1
+O,M,33,133,BD,17.2
+O,M,34,134,BD,17.7
+O,M,35,135,BD,17.3
+O,M,36,136,BD,17
+O,M,37,137,BD,17.5
+O,M,38,138,BD,17.9
+O,M,39,139,BD,17.8
+O,M,40,140,BD,17.9
+O,M,41,141,BD,18
+O,M,42,142,BD,19.6
+O,M,43,143,BD,19.4
+O,M,44,144,BD,20.9
+O,M,45,145,BD,20.6
+O,M,46,146,BD,20.1
+O,M,47,147,BD,21.1
+O,M,48,148,BD,20.5
+O,M,49,149,BD,21.5
+O,M,50,150,BD,21.6
+O,F,1,151,BD,9.8
+O,F,2,152,BD,9.7
+O,F,3,153,BD,10.9
+O,F,4,154,BD,11.5
+O,F,5,155,BD,11.9
+O,F,6,156,BD,12.6
+O,F,7,157,BD,12.7
+O,F,8,158,BD,12.5
+O,F,9,159,BD,12.9
+O,F,10,160,BD,13.3
+O,F,11,161,BD,14
+O,F,12,162,BD,14.1
+O,F,13,163,BD,13.8
+O,F,14,164,BD,13.8
+O,F,15,165,BD,13.8
+O,F,16,166,BD,14
+O,F,17,167,BD,13.9
+O,F,18,168,BD,13.7
+O,F,19,169,BD,14.7
+O,F,20,170,BD,14.6
+O,F,21,171,BD,15.6
+O,F,22,172,BD,16
+O,F,23,173,BD,14.6
+O,F,24,174,BD,15.5
+O,F,25,175,BD,15.7
+O,F,26,176,BD,17.2
+O,F,27,177,BD,16.1
+O,F,28,178,BD,15.9
+O,F,29,179,BD,16.4
+O,F,30,180,BD,16.6
+O,F,31,181,BD,15
+O,F,32,182,BD,16.6
+O,F,33,183,BD,15.3
+O,F,34,184,BD,16.8
+O,F,35,185,BD,17.2
+O,F,36,186,BD,18.2
+O,F,37,187,BD,17.9
+O,F,38,188,BD,17.9
+O,F,39,189,BD,17.7
+O,F,40,190,BD,18.6
+O,F,41,191,BD,18
+O,F,42,192,BD,19.2
+O,F,43,193,BD,19.2
+O,F,44,194,BD,17.5
+O,F,45,195,BD,20
+O,F,46,196,BD,18.7
+O,F,47,197,BD,19.6
+O,F,48,198,BD,19.5
+O,F,49,199,BD,19.8
+O,F,50,200,BD,21.1
diff --git a/test/tercen_java_client/TestClient.java b/test/tercen_java_client/TestClient.java
index 4d15e85..c4d51b5 100644
--- a/test/tercen_java_client/TestClient.java
+++ b/test/tercen_java_client/TestClient.java
@@ -1,23 +1,19 @@
package tercen_java_client;
import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
import java.util.LinkedHashMap;
import org.junit.Assert;
import org.junit.Test;
-
+
+import com.tercen.http.AuthHttpClient;
+import com.tercen.model.impl.UserSession;
+
import okhttp3.MediaType;
import okhttp3.RequestBody;
import okhttp3.Response;
-import com.tercen.client.impl.TercenClient;
-import com.tercen.http.AuthHttpClient;
-import com.tercen.model.base.UserSessionBase;
-import com.tercen.model.impl.UserSession;
-import com.tercen.service.ServiceError;
-
-import tercen.tson.*;
+import tercen.tson.TsonError;
+import tercen.tson.jtson;
public class TestClient {
@Test
@@ -25,7 +21,7 @@ public void test_get() throws IOException, InterruptedException {
AuthHttpClient authClient = new AuthHttpClient();
- Response response = authClient.get("https://tercen.com", null);
+ Response response = authClient.get(TestUtils.TERCEN_URL, null);
Assert.assertEquals(response.code(), 200);
@@ -36,7 +32,7 @@ public void test_post() throws IOException, InterruptedException {
AuthHttpClient authClient = new AuthHttpClient();
- Response response = authClient.post("https://tercen.com", null,
+ Response response = authClient.post(TestUtils.TERCEN_URL, null,
RequestBody.create(MediaType.parse("application/json; charset=utf-8"), "some body text"));
Assert.assertEquals(response.code(), 200);
@@ -45,43 +41,41 @@ public void test_post() throws IOException, InterruptedException {
@Test
public void test_put() throws IOException, InterruptedException {
-
+
AuthHttpClient authClient = new AuthHttpClient();
- Response response = authClient.put("https://tercen.com", null,
+ Response response = authClient.put(TestUtils.TERCEN_URL, null,
RequestBody.create(MediaType.parse("application/json; charset=utf-8"), "some body text"));
Assert.assertEquals(response.code(), 200);
}
-
+
@Test
public void test_signin() throws IOException, InterruptedException, TsonError {
-
+
AuthHttpClient authClient = new AuthHttpClient();
-
+
LinkedHashMap params = new LinkedHashMap();
-
+
params.put("domain", "tercen");
params.put("usernameOrEmail", "admin");
params.put("password", "admin");
-
+
byte[] result = jtson.encodeTSON(params);
-
- Response response = authClient.post("http://127.0.0.1:5400/api/v1/user/connect2", null,
+ Response response = authClient.post(TestUtils.LOCALHOST_CONNECT2_URL, null,
RequestBody.create(MediaType.parse("application/tson"), result));
-
- Assert.assertEquals( 200, response.code() );
-
- LinkedHashMap map = (LinkedHashMap)jtson.decodeTSON(response.body().bytes());
-
- UserSession userSession = new UserSession(map);
-
+
+ Assert.assertEquals(200, response.code());
+
+ LinkedHashMap map = (LinkedHashMap) jtson.decodeTSON(response.body().bytes());
+
+ UserSession userSession = new UserSession(map);
+
System.out.println(userSession.toJson());
System.out.println(userSession);
-
}
-
+
}
diff --git a/test/tercen_java_client/TestTercenClient.java b/test/tercen_java_client/TestTercenClient.java
index dd61407..ef31e1b 100644
--- a/test/tercen_java_client/TestTercenClient.java
+++ b/test/tercen_java_client/TestTercenClient.java
@@ -1,53 +1,24 @@
package tercen_java_client;
-import java.net.URI;
import java.util.List;
import java.util.Optional;
-import java.util.stream.Collectors;
import org.junit.Assert;
import org.junit.Test;
import com.tercen.client.impl.TercenClient;
-import com.tercen.model.impl.Column;
import com.tercen.model.impl.FileDocument;
import com.tercen.model.impl.Project;
-import com.tercen.model.impl.Schema;
-import com.tercen.model.impl.Table;
import com.tercen.model.impl.User;
import com.tercen.model.impl.UserSession;
import com.tercen.service.ServiceError;
-import tercen.tson.CStringList;
-
public class TestTercenClient {
-
- Project getTestProject(TercenClient client, String teamOrUser, String projectName) throws ServiceError {
-
- List startKey = List.of(teamOrUser, false, "2000");
- List endKey = List.of(teamOrUser, false, "2100");
-
- List projects = client.projectService.findByTeamAndIsPublicAndLastModifiedDate(startKey, endKey, 1000,
- 0, false, true);
-
- Optional result = projects.stream().filter(p -> p.name.equals(projectName)).findAny();
-
- if (result.isPresent()) {
- return result.get();
- }
-
- Project new_project = new Project();
- new_project.name = projectName;
- new_project.acl.owner = teamOrUser;
-
- return client.projectService.create(new_project);
-
- }
@Test
public void test_user_connect() throws ServiceError {
- TercenClient client = new TercenClient("http://127.0.0.1:5400/");
+ TercenClient client = new TercenClient(TestUtils.LOCALHOST_URL);
UserSession userSession = client.userService.connect2("tercen", "test", "test");
System.out.println(userSession.toJson());
@@ -58,7 +29,7 @@ public void test_user_connect() throws ServiceError {
@Test
public void test_get() throws ServiceError {
- TercenClient client = new TercenClient("http://127.0.0.1:5400/");
+ TercenClient client = new TercenClient(TestUtils.LOCALHOST_URL);
client.userService.connect2("tercen", "test", "test");
User user = client.userService.get("test");
@@ -70,10 +41,10 @@ public void test_get() throws ServiceError {
@Test
public void test_project_create() throws ServiceError {
- TercenClient client = new TercenClient("http://127.0.0.1:5400/");
+ TercenClient client = new TercenClient(TestUtils.LOCALHOST_URL);
client.userService.connect2("tercen", "test", "test");
- final Project project = getTestProject(client, "test", "java-unit-test");
+ final Project project = TestUtils.getTestProject(client, "test", "java-unit-test");
client.projectService.delete(project.id, project.rev);
@@ -82,11 +53,11 @@ public void test_project_create() throws ServiceError {
@Test
public void test_project_find() throws ServiceError {
- TercenClient client = new TercenClient("http://127.0.0.1:5400/");
+ TercenClient client = new TercenClient(TestUtils.LOCALHOST_URL);
client.userService.connect2("tercen", "test", "test");
- final Project project = getTestProject(client, "test", "java-unit-test");
+ final Project project = TestUtils.getTestProject(client, "test", "java-unit-test");
List startKey = List.of("test", false, "2000");
List endKey = List.of("test", false, "2100");
@@ -105,11 +76,11 @@ public void test_project_find() throws ServiceError {
@Test
public void test_file_upload() throws ServiceError {
- TercenClient client = new TercenClient("http://127.0.0.1:5400/");
+ TercenClient client = new TercenClient(TestUtils.LOCALHOST_URL);
client.userService.connect2("tercen", "test", "test");
- final Project project = getTestProject(client, "test", "java-unit-test");
+ final Project project = TestUtils.getTestProject(client, "test", "java-unit-test");
FileDocument file = new FileDocument();
file.name = "hello.txt";
@@ -129,11 +100,11 @@ public void test_file_upload() throws ServiceError {
@Test
public void test_file_append() throws ServiceError {
- TercenClient client = new TercenClient("http://127.0.0.1:5400/");
+ TercenClient client = new TercenClient(TestUtils.LOCALHOST_URL);
client.userService.connect2("tercen", "test", "test");
- final Project project = getTestProject(client, "test", "java-unit-test");
+ final Project project = TestUtils.getTestProject(client, "test", "java-unit-test");
FileDocument file = new FileDocument();
file.name = "hello.txt";
@@ -150,12 +121,10 @@ public void test_file_append() throws ServiceError {
}
-
-
// @Test
// public void test_select_table() throws ServiceError {
//
-// TercenClient client = new TercenClient("http://127.0.0.1:5400/");
+// TercenClient client = new TercenClient(TestUtils.LOCALHOST_URL);
//
// client.userService.connect2("tercen", "test", "test");
//
diff --git a/test/tercen_java_client/TestUtils.java b/test/tercen_java_client/TestUtils.java
new file mode 100644
index 0000000..b793469
--- /dev/null
+++ b/test/tercen_java_client/TestUtils.java
@@ -0,0 +1,37 @@
+package tercen_java_client;
+
+import java.util.List;
+import java.util.Optional;
+
+import com.tercen.client.impl.TercenClient;
+import com.tercen.model.impl.Project;
+import com.tercen.service.ServiceError;
+
+public class TestUtils {
+
+ public static final String TERCEN_URL = "https://tercen.com";
+ public static final String LOCALHOST_URL = "http://127.0.0.1:5402/";
+ public static final String LOCALHOST_CONNECT2_URL = LOCALHOST_URL + "api/v1/user/connect2";
+
+ public static Project getTestProject(TercenClient client, String teamOrUser, String projectName)
+ throws ServiceError {
+
+ List startKey = List.of(teamOrUser, false, "2000");
+ List endKey = List.of(teamOrUser, false, "2100");
+
+ List projects = client.projectService.findByTeamAndIsPublicAndLastModifiedDate(startKey, endKey, 1000,
+ 0, false, true);
+
+ Optional result = projects.stream().filter(p -> p.name.equals(projectName)).findAny();
+
+ if (result.isPresent()) {
+ return result.get();
+ }
+
+ Project new_project = new Project();
+ new_project.name = projectName;
+ new_project.acl.owner = teamOrUser;
+
+ return client.projectService.create(new_project);
+ }
+}