/*
* YAQP - Yet Another QSAR Project:
* Machine Learning algorithms designed for the prediction of toxicological
* features of chemical compounds become available on the Web. Yaqp is developed
* under OpenTox (http://opentox.org) which is an FP7-funded EU research project.
* This project was developed at the Automatic Control Lab in the Chemical Engineering
* School of National Technical University of Athens. Please read README for more
* information.
*
* Copyright (C) 2009-2010 Pantelis Sopasakis & Charalampos Chomenides
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact:
* Pantelis Sopasakis
* chvng@mail.ntua.gr
* Address: Iroon Politechniou St. 9, Zografou, Athens Greece
* tel. +30 210 7723236
*/
package org.opentox.db.handlers;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.opentox.core.exceptions.Cause;
import org.opentox.core.exceptions.YaqpException;
import org.opentox.db.DatabaseJanitor;
import org.opentox.db.exceptions.DbException;
import org.opentox.ontology.components.*;
import org.opentox.db.exceptions.BadEmailException;
import org.opentox.db.exceptions.DuplicateKeyException;
import org.opentox.db.util.Page;
import org.opentox.db.util.TheDbConnector;
import static org.junit.Assert.*;
import org.opentox.ontology.exceptions.ImproperEntityException;
import org.opentox.ontology.exceptions.YaqpOntException;
import org.opentox.ontology.namespaces.OTAlgorithmTypes;
import org.opentox.ontology.util.AlgorithmMeta;
import org.opentox.ontology.util.AlgorithmParameter;
import org.opentox.ontology.util.YaqpAlgorithms;
import org.opentox.ontology.util.vocabulary.ConstantParameters;
import org.opentox.util.monitoring.Jennifer;
/**
*
* @author Sopasakis Pantelis
* @author Charalampos Chomenides
*/
public class WriterHandlerTest {
public WriterHandlerTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
TheDbConnector.init();
DatabaseJanitor.INSTANCE.reset();
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
@Test
public void addNullComponent() {
try {
WriterHandler.add(null);
} catch (Exception ex) {
assertTrue(ex instanceof NullPointerException);
}
}
@Test
public void testAddUserGroup() throws ImproperEntityException {
System.out.println("user group - test 1");
try {
UserGroup guestGroup = (UserGroup) WriterHandler.add(new UserGroup("GUEST", 60,"CCC", "CCC", "CCC" , "CCC", 3000));
assertTrue(guestGroup.getName().equals("GUEST") && guestGroup.getLevel() == 60);
UserGroup adminGroup = WriterHandler.addUserGroup(new UserGroup("ADMINISTRATOR", 10,"CCC", "CCC", "CCC" , "CCC", 3000));
assertTrue(adminGroup.getLevel() == 10 && adminGroup.getName().equals("ADMINISTRATOR"));
} catch (DuplicateKeyException ex) {
System.out.println(ex);
fail();
} catch (DbException ex) {
fail();
}
}
@Test
public void addBadUserGroup() {
System.out.println("user group - test 2");
UserGroup badGroup = new UserGroup(null, 10,"CCC", "CCC", "CCC" , "CCC", 3000);
boolean failed = false;
try {
WriterHandler.add(badGroup);
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB321);
failed = true;
} catch (ImproperEntityException ex) {
fail("Improper Entity ?!");
}
if (!failed) {
fail("SHOULD HAVE FAILED!");
}
}
@Test
public void addDuplicateUserGroup() {
System.out.println("user group - test 3");
UserGroup some = new UserGroup("ROCKETS", 512,"CCC", "CCC", "CCC" , "CCC", 3000);
try {
WriterHandler.add(some);
} catch (DbException ex) {
} catch (ImproperEntityException ex) {
fail("Improper Entity ?!");
}
try {
WriterHandler.add(some);
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex instanceof DuplicateKeyException);
} catch (ImproperEntityException ex) {
fail("Improper Entity ?!");
}
}
@Test
public void addNullUserGroup() throws DbException {
System.out.println("user group - test 4");
try {
WriterHandler.addUserGroup(null);
fail("SHOULD HAVE FAILED!");
} catch (NullPointerException ex) {
assertTrue(ex.toString().contains("null user group"));
}
}
@Test
public void addBigNameUserGroup() {
System.out.println("user group - test 5");
UserGroup ug = new UserGroup("ababababababababababababababababababababababa", 10,"CCC", "CCC", "CCC" , "CCC", 3000);
try {
WriterHandler.add(ug);
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB490);
} catch (ImproperEntityException ex) {
fail();
}
}
@Test
public void testAddAlgorithmOntology() throws YaqpOntException, DbException, YaqpException {
System.out.println("algorithm ontology - test 1");
try {
ArrayList<OTAlgorithmTypes> otlist = OTAlgorithmTypes.getAllAlgorithmTypes();
for (OTAlgorithmTypes ot : otlist) {
AlgorithmOntology algOnt = new AlgorithmOntology(ot.getResource().getLocalName());
assertTrue(algOnt == WriterHandler.addAlgorithmOntology(algOnt));
}
} catch (DuplicateKeyException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
fail();
}
}
@Test
public void duplicateAddOntology() {
System.out.println("algorithm ontology - test 2");
AlgorithmOntology algOnt = new AlgorithmOntology(OTAlgorithmTypes.Classification);
try {
WriterHandler.add(algOnt);
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex instanceof DuplicateKeyException);
} catch (ImproperEntityException ex) {
fail("Improper Entity ?!");
}
}
@Test
public void addProperUser() throws BadEmailException {
System.out.println("user - test 1");
try {
WriterHandler.add(
new User(
"john", java.util.UUID.randomUUID().toString(), "john", "smith",
"john@foo.goo.gr", null, "Italy",
"Roma", "15, Efi Sarri st.", "https://opentox.ntua.gr/abc", null,
new UserGroup("GUEST", 0,"CCC", "CCC", "CCC" , "CCC", 3000)));
} catch (DuplicateKeyException ex) {
System.out.println(ex);
Logger.getLogger(WriterHandlerTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
fail();
}
}
@Test
public void noUsername() {
System.out.println("user - test 2");
try {
WriterHandler.add(new User(null, java.util.UUID.randomUUID().toString(), "john", "smith", "john@foo.goo.gr", null, "Italy", "Roma", "15, Efi Sarri st.", "https://opentox.ntua.gr/abc", null,
new UserGroup("GUEST", 0,"CCC", "CCC", "CCC" , "CCC", 3000)));
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB5870);
} catch (ImproperEntityException ex) {
Logger.getLogger(WriterHandlerTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Test
public void noPassWord() {
System.out.println("user - test 3");
try {
WriterHandler.add(new User("john", null, "john", "smith", "john@foo.goo.gr", null, "Italy", "Roma", "15, Efi Sarri st.", "https://opentox.ntua.gr/abc", null,
new UserGroup("GUEST", 0,"CCC", "CCC", "CCC" , "CCC", 3000)));
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB5872);
} catch (ImproperEntityException ex) {
Logger.getLogger(WriterHandlerTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Test
public void noAddress() {
System.out.println("user - test 4");
try {
WriterHandler.add(new User("mike", java.util.UUID.randomUUID().toString(), "mike", "williams", "mike@foo.goo.gr", null, "Greece", "Larisa", null, "https://opentox.ntua.gr/abc", null,
new UserGroup("GUEST", 0,"CCC", "CCC", "CCC" , "CCC", 3000)));
} catch (Exception ex) {
fail();
}
}
@Test
public void duplicateUser() throws BadEmailException {
System.out.println("user - test 5");
try {
WriterHandler.add(
new User(
"john", java.util.UUID.randomUUID().toString(), "john", "smith",
"john@foo.goo.gr", null, "Italy",
"Roma", "15, Efi Sarri st.", "https://opentox.ntua.gr/abc", null,
new UserGroup("GUEST", 0,"CCC", "CCC", "CCC" , "CCC", 3000)));
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex instanceof DuplicateKeyException);
} catch (Exception ex) {
fail();
}
}
@Test
public void badEMailUser() {
System.out.println("user - test 6");
try {
WriterHandler.add(
new User(
"flash", java.util.UUID.randomUUID().toString(), "flash", "gordon",
"iDontGiveYouMyEmail", null, "Chung",
null, null, null, null,
new UserGroup("GUEST", 0,"CCC", "CCC", "CCC" , "CCC", 3000)));
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex instanceof BadEmailException);
assertTrue(ex.getCode() == Cause.XDH103);
} catch (Exception ex) {
fail();
}
}
@Test
public void addProperAlgorithm() {
System.out.println("algorithm - test 1");
try {
WriterHandler.add(YaqpAlgorithms.MLR);
WriterHandler.add(YaqpAlgorithms.SVM);
WriterHandler.add(YaqpAlgorithms.SVC);
WriterHandler.add(YaqpAlgorithms.NAIVE_BAYES);
} catch (Throwable thr) {
System.out.println(thr);
fail("SHOULD NOT HAVE FAILED!");
}
}
@Test
public void duplicateAlgorithm() {
System.out.println("algorithm - test 2");
try {
WriterHandler.add(YaqpAlgorithms.SVM);
} catch (DbException ex) {
//assertTrue(ex.getCode()==Cause);
assertTrue(ex instanceof DuplicateKeyException);
} catch (ImproperEntityException ex) {
fail("Improper Entity ?!");
}
}
@Test
public void algorithmNoOntologies() {
System.out.println("algorithm - test 3");
Algorithm a = new Algorithm();
a.setMeta(new AlgorithmMeta());
try {
WriterHandler.add(a);
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB3235);
} catch (ImproperEntityException ex) {
Logger.getLogger(WriterHandlerTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Test
public void voidAlgorithm() {
System.out.println("algorithm - test 4");
Algorithm a = new Algorithm();
try {
WriterHandler.add(a);
fail("SHOULD HAVE FAILED!");
} catch (YaqpException ex) {
assertTrue(ex instanceof DbException);
assertEquals(ex.getCode(), Cause.XDB3235);
}
}
@Test
public void addProperFeature() {
System.out.println("feature - test 1");
for (int i = 5; i <= 20; i++) {
try {
assertTrue(WriterHandler.addFeature(new Feature(0, "http://sth.com/feature/" + i)).getID() > 0);
} catch (DbException ex) {
fail("SHOULDN'T HAVE FAILED!");
}
}
}
@Test
public void addDuplicateFeature() {
System.out.println("feature - test 2");
try {
String feature_uri = "http://sth.com/feature/10";
Feature feature = WriterHandler.addFeature(new Feature(feature_uri));
assertTrue(feature.getID() > 0);
assertTrue(feature.getURI().equals(feature_uri));
} catch (DbException ex) {
fail("SHOULD NOT HAVE FAILED!");
System.out.println(ex);
}
}
@Test
public void addNullFeature() {
System.out.println("feature - test 3");
try {
WriterHandler.addFeature(null);
fail("SHOULD HAVE FAILED!");
} catch (Exception ex) {
assertTrue(ex instanceof NullPointerException);
}
}
@Test
public void addBadURIFeature() {
System.out.println("feature - test 4");
Feature bad = new Feature("asdf wqeryt *&^");
try {
WriterHandler.addFeature(bad);
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB3237);
}
}
@Test
public void addVoidFeature() {
System.out.println("feature - test 5");
Feature bad = new Feature();
try {
WriterHandler.addFeature(bad);
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB3236);
}
}
@Test
public void addProperTask() {
System.out.println("task - test 1");
try {
User prot = new User();
prot.setUserName("%ik%");
User u = ReaderHandler.searchUser(prot,new Page(0,0)).get(0);
Task t = new Task(java.util.UUID.randomUUID().toString(), u, YaqpAlgorithms.SVC, 1000);
assertEquals(WriterHandler.addTask(t), t);
} catch (DbException ex) {
System.out.println(ex);
fail();
}
}
@Test
public void addTaskUnknownUser() {
System.out.println("task - test 2");
try {
User u = new User();
u.setEmail("a@bc.d");
Task t = new Task(java.util.UUID.randomUUID().toString(), u, YaqpAlgorithms.SVC, 1000);
assertEquals(WriterHandler.addTask(t), t);
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDH110);
}
}
@Test
public void addTaskUndefinedAlgorithm() {
System.out.println("task - test 3");
try {
User prot = new User();
User u = ReaderHandler.searchUser(prot,new Page(0,0)).get(0);
Task t = new Task(java.util.UUID.randomUUID().toString(), u, null, 1000);
assertEquals(WriterHandler.addTask(t), t);
} catch (DbException ex) {
assertEquals(ex.getCode(), Cause.XDB4003);
}
}
@Test
public void addTaskZeroDuration() {
System.out.println("task - test 4");
try {
User prot = new User();
User u = ReaderHandler.searchUser(prot,new Page(0,0)).get(0);
Task t = new Task(java.util.UUID.randomUUID().toString(), u, YaqpAlgorithms.SVC, 0);
assertEquals(WriterHandler.addTask(t), t);
} catch (DbException ex) {
assertEquals(ex.getCode(), Cause.XDB4001);
}
}
@Test
public void addQSARModel() throws ImproperEntityException {
System.out.println("QSAR Model - test 1");
try {
User u = ReaderHandler.searchUser(new User(),new Page(0,0)).get(0);
Feature f = ReaderHandler.searchFeature(new Feature(null),new Page(0,0)).get(0);
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.MLR, u, null, "dataset1", QSARModel.ModelStatus.UNDER_DEVELOPMENT);
m = (QSARModel) WriterHandler.add(m);
assertTrue(m.getId() > 0);
} catch (DbException ex) {
System.out.println(ex);
fail("SHOULDN'T HAVE FAILED!");
}
}
@Test
public void addNullQSAR() {
System.out.println("QSAR Model - test 2");
QSARModel m = null;
try {
WriterHandler.addPredictiveModel(m);
} catch (Exception ex) {
assertTrue(ex instanceof NullPointerException);
}
}
@Test
public void addEmptyQSAR() {
System.out.println("QSAR Model - test 3");
QSARModel m = new QSARModel();
try {
WriterHandler.addQSARModel(m);
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertEquals(ex.getCode(), Cause.XDB5001);
}
}
@Test
public void addQSARNewFeatures() throws ImproperEntityException {
System.out.println("QSAR Model - test 4");
try {
User u = ReaderHandler.searchUser(new User(),new Page(0,0)).get(0);
Feature f1 = new Feature("http://example.org/feature/1");
Feature f2 = new Feature("http://example.org/feature/2");
Feature f3 = new Feature("http://example.org/feature/3");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f1);
lf.add(f2);
lf.add(f3);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f1, f2, lf, YaqpAlgorithms.MLR, u, null, "http://sth.com/dataset/1", QSARModel.ModelStatus.UNDER_DEVELOPMENT);
m = (QSARModel) WriterHandler.add(m);
assertTrue(m.getDependentFeature().getID() > 0);
assertTrue(m.getPredictionFeature().getID() > 0);
assertTrue(m.getIndependentFeatures().get(0).getID() > 0);
assertTrue(m.getId() > 0);
} catch (DbException ex) {
fail("SHOULDN'T HAVE FAILED!");
}
}
@Test
public void addNaiveBayesModel() throws ImproperEntityException {
System.out.println("QSAR Model - test 5");
try {
User u = ReaderHandler.searchUser(new User(),new Page(0,0)).get(0);
Feature f = ReaderHandler.searchFeature(new Feature(null),new Page(0,0)).get(0);
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.NAIVE_BAYES, u, null, "dataset1", QSARModel.ModelStatus.UNDER_DEVELOPMENT);
m = (QSARModel) WriterHandler.add(m);
assertTrue(m.getId() > 0);
} catch (DbException ex) {
System.out.println(ex);
fail("SHOULDN'T HAVE FAILED!");
}
}
@Test
public void addsvmModel() {
System.out.println("SVM Model - test 1");
try {
User u = ReaderHandler.searchUser(new User(),new Page(0,0)).get(1);
Feature f = new Feature(-1, "http://chung.net/feature/666");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.SVM, u, null, "http://dataset.com/1", null);
Map<String, AlgorithmParameter> params = new HashMap<String, AlgorithmParameter>();
params.putAll(ConstantParameters.SVMParams());
//m.setParams(ConstantParameters.SVMParams());
m.setParams(new HashMap<String, AlgorithmParameter>());
WriterHandler.add(m);
} catch (DbException ex) {
System.out.println(ex);
fail();
} catch (ImproperEntityException ex) {
System.out.println(ex);
fail();
}
}
@Test
public void addsvmModel_badParams() {
System.out.println("SVM Model - test 2");
try {
User u = ReaderHandler.searchUser(new User(),new Page(0,0)).get(1);
Feature f = new Feature(-1, "http://chung.net/feature/666");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.SVM, u, null, "http://dataset.com/1", null);
Map<String, AlgorithmParameter> temp = ConstantParameters.SVMParams();
temp.remove("gamma");
temp.put("gamma", new AlgorithmParameter(-1));
m.setParams(temp);
m = (QSARModel) WriterHandler.add(m);
fail();
} catch (DbException ex) {
assertEquals(ex.getCode(), Cause.XDB7703);
} catch (ImproperEntityException ex) {
System.out.println(ex);
fail();
}
}
@Test
public void addsvmModel_missing() {
System.out.println("SVM Model - test 3");
try {
User u = ReaderHandler.searchUser(new User(),new Page(0,0)).get(1);
Feature f = new Feature(-1, "http://chung.net/feature/666");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.SVM, u, null, "http://dataset.com/1", null);
Map<String, AlgorithmParameter> temp = ConstantParameters.SVMParams();
temp.remove("gamma"); // gamma is missing but a default value replaces it!
m.setParams(temp);
m = (QSARModel) WriterHandler.add(m);
assertTrue(m.getId()>0);
} catch (DbException ex) {
fail();
} catch (ImproperEntityException ex) {
System.out.println(ex);
fail();
}
}
@Test
public void addsvmModelKernel() {
System.out.println("SVM Model - test 4");
try {
User u = ReaderHandler.searchUser(new User(),new Page(0,0)).get(1);
Feature f = new Feature(-1, "http://chung.net/feature/666");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.SVM, u, null, "http://dataset.com/1", null);
Map<String, AlgorithmParameter> params = new HashMap<String, AlgorithmParameter>();
params.putAll(ConstantParameters.SVMParams());
//m.setParams(ConstantParameters.SVMParams());
params.put(ConstantParameters.kernel, params.get(ConstantParameters.kernel).updateParamValue("LINEAR"));
System.out.println( params.get(ConstantParameters.kernel).paramValue.toString());
m.setParams(params);
WriterHandler.add(m);
} catch (DbException ex) {
System.out.println(ex);
fail();
} catch (ImproperEntityException ex) {
System.out.println(ex);
fail();
}
}
@Test
public void addmlrModel() throws DbException, ImproperEntityException, YaqpException {
System.out.println("MLR Model - test 1");
User u = ReaderHandler.searchUser(new User(),new Page(0,0)).get(0);
//u.setEmail("john@foo.goo.gr");
Feature f = new Feature(-1, "http://chung.net/feature/666");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.MLR, u, null, "dataset1", null);
m=(QSARModel) WriterHandler.add(m);
assertTrue(m.getId()>0);
}
@Test
public void addmlrModelUnknownUser() {
try {
System.out.println("MLR Model - test 2");
User u = new User();
u.setEmail("unknown@foo.hyt");
Feature f = new Feature(-1, "http://chung.net/feature/666");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.MLR, u, null, "dataset1", null);
System.out.println(WriterHandler.add(m));
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB7701);
} catch (ImproperEntityException ex) {
System.out.println(ex);
fail();
}
}
@Test
public void addMlrModelNoUser(){
try {
System.out.println("MLR Model - test 3");
User u = new User();
Feature f = new Feature(-1, "http://chung.net/feature/777");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.MLR, u, null, "dataset1", null);
System.out.println(WriterHandler.add(m));
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB7701);
} catch (ImproperEntityException ex) {
fail();
}
}
@Test
public void addMlrInvalidDataset(){
try {
System.out.println("MLR Model - test 4");
User u = new User();
u.setEmail("john@foo.goo.gr");
Feature f = new Feature(-1, "http://chung.net/feature/777");
ArrayList<Feature> lf = new ArrayList<Feature>();
lf.add(f);
QSARModel m = new QSARModel(java.util.UUID.randomUUID().toString(), f, f, lf, YaqpAlgorithms.MLR, u, null, "asdf qwerty %@#& 89", null);
System.out.println(WriterHandler.add(m));
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB18);
} catch (ImproperEntityException ex) {
fail();
}
}
@Test
public void addProperOmega() {
System.out.println("oMega - test 1");
try {
User prot = new User();
prot.setEmail("john%");
User u = ReaderHandler.searchUser(prot,new Page(0,0)).get(0);
OmegaModel om = new OmegaModel("dset50", java.util.UUID.randomUUID().toString(), u);
assertTrue(WriterHandler.addOmega(om).getId() > 0);
} catch (DbException ex) {
Logger.getLogger(WriterHandlerTest.class.getName()).log(Level.SEVERE, null, ex);
fail();
}
}
@Test
public void addOmegaUnknownUser() throws ImproperEntityException {
System.out.println("oMega - test 2");
try {
User u = new User();
u.setEmail("asdf@qwerty.gr");
OmegaModel om = new OmegaModel("dset50", java.util.UUID.randomUUID().toString(), u);
WriterHandler.add(om);
fail("SHOULD HAVE FAILED!");
} catch (DbException ex) {
assertTrue(ex.getCode() == Cause.XDB9095);
}
}
}