/// /// @file TestRDFAnnotation2.cs /// @brief fomula units data unit tests /// @author Frank Bergmann (Csharp conversion) /// @author Akiya Jouraku (Csharp conversion) /// @author Ben Bornstein /// /// $Id: TestRDFAnnotation2.cs 9830 2009-07-17 18:35:36Z ajouraku $ /// $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/trunk/libsbml/src/bindings/csharp/test/annotation/TestRDFAnnotation2.cs $ /// /// This test file was converted from src/sbml/test/TestRDFAnnotation2.cpp /// with the help of conversion sciprt (ctest_converter.pl). /// /// */ namespace LibSBMLCSTest { using libsbml; using System.IO; public class TestRDFAnnotation2 { public class AssertionError : System.Exception { public AssertionError() : base() { } } static void assertTrue(bool condition) { if (condition == true) { return; } throw new AssertionError(); } static void assertEquals(object a, object b) { if ( (a == null) && (b == null) ) { return; } else if (a.Equals(b)) { return; } throw new AssertionError(); } static void assertNotEquals(object a, object b) { if ( (a == null) && (b == null) ) { throw new AssertionError(); } else if (a.Equals(b)) { throw new AssertionError(); } } static void assertEquals(bool a, bool b) { if ( a == b ) { return; } throw new AssertionError(); } static void assertNotEquals(bool a, bool b) { if ( a != b ) { return; } throw new AssertionError(); } static void assertEquals(int a, int b) { if ( a == b ) { return; } throw new AssertionError(); } static void assertNotEquals(int a, int b) { if ( a != b ) { return; } throw new AssertionError(); } private Model m2; private XMLOutputStream XOS2; private OStringStream OSS2; private SBMLDocument d2; public bool equals(string s) { return s == OSS2.str(); } public void setUp() { OSS2 = new OStringStream(); XOS2 = new XMLOutputStream(OSS2); string filename = "../../annotation/test/test-data/annotation2.xml"; d2 = libsbml.readSBML(filename); m2 = d2.getModel(); } public void tearDown() { } public void test_RDFAnnotation2_getModelHistory() { ModelHistory history = m2.getModelHistory(); assertTrue( history != null ); ModelCreator mc = history.getCreator(0); assertTrue(( "Hucka" == mc.getFamilyName() )); assertTrue(( "Mike" == mc.getGivenName() )); assertTrue(( "mhucka@caltech.edu" == mc.getEmail() )); assertTrue(( "BNMC" == mc.getOrganisation() )); ModelCreator mc1 = history.getCreator(1); assertTrue(( "Keating" == mc1.getFamilyName() )); assertTrue(( "Sarah" == mc1.getGivenName() )); assertTrue(( "skeating@caltech.edu" == mc1.getEmail() )); assertTrue(( "UH" == mc1.getOrganisation() )); Date date = history.getCreatedDate(); assertTrue( date.getYear() == 2005 ); assertTrue( date.getMonth() == 2 ); assertTrue( date.getDay() == 2 ); assertTrue( date.getHour() == 14 ); assertTrue( date.getMinute() == 56 ); assertTrue( date.getSecond() == 11 ); assertTrue( date.getSignOffset() == 0 ); assertTrue( date.getHoursOffset() == 0 ); assertTrue( date.getMinutesOffset() == 0 ); assertTrue(( "2005-02-02T14:56:11Z" == date.getDateAsString() )); date = history.getModifiedDate(); assertTrue( date.getYear() == 2006 ); assertTrue( date.getMonth() == 5 ); assertTrue( date.getDay() == 30 ); assertTrue( date.getHour() == 10 ); assertTrue( date.getMinute() == 46 ); assertTrue( date.getSecond() == 2 ); assertTrue( date.getSignOffset() == 0 ); assertTrue( date.getHoursOffset() == 0 ); assertTrue( date.getMinutesOffset() == 0 ); assertTrue(( "2006-05-30T10:46:02Z" == date.getDateAsString() )); date = history.getModifiedDate(1); assertTrue( date.getYear() == 2007 ); assertTrue( date.getMonth() == 1 ); assertTrue( date.getDay() == 16 ); assertTrue( date.getHour() == 15 ); assertTrue( date.getMinute() == 31 ); assertTrue( date.getSecond() == 52 ); assertTrue( date.getSignOffset() == 0 ); assertTrue( date.getHoursOffset() == 0 ); assertTrue( date.getMinutesOffset() == 0 ); assertTrue(( "2007-01-16T15:31:52Z" == date.getDateAsString() )); } public void test_RDFAnnotation2_modelWithHistoryAndCVTerms() { ModelHistory h = new ModelHistory(); ModelCreator c = new ModelCreator(); c.setFamilyName("Keating"); c.setGivenName("Sarah"); h.addCreator(c); m2.unsetModelHistory(); m2.setModelHistory(h); CVTerm cv = new CVTerm(); cv.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER); cv.setBiologicalQualifierType(libsbml.BQB_IS_VERSION_OF); cv.addResource("http://www.geneontology.org/#GO:0005892"); m2.addCVTerm(cv); XMLNode Ann = RDFAnnotationParser.parseModelHistory(m2); string expected = "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " Keating\n" + " Sarah\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + ""; Ann.write(XOS2); assertEquals( true, equals(expected) ); } public void test_RDFAnnotation2_modelWithHistoryAndMultipleModifiedDates() { ModelHistory h = new ModelHistory(); ModelCreator c = new ModelCreator(); c.setFamilyName("Keating"); c.setGivenName("Sarah"); h.addCreator(c); Date d = new Date(2005,2,2,14,56,11); h.setCreatedDate(d); h.addModifiedDate(d); h.addModifiedDate(d); m2.unsetModelHistory(); m2.setModelHistory(h); XMLNode Ann = RDFAnnotationParser.parseModelHistory(m2); string expected = "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " Keating\n" + " Sarah\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " 2005-02-02T14:56:11Z\n" + " \n" + " \n" + " 2005-02-02T14:56:11Z\n" + " \n" + " \n" + " 2005-02-02T14:56:11Z\n" + " \n" + " \n" + " \n" + ""; Ann.write(XOS2); assertEquals( true, equals(expected) ); } public void test_RDFAnnotation2_modelWithHistoryWithCharacterReference() { ModelHistory h = new ModelHistory(); ModelCreator c = new ModelCreator(); c.setFamilyName("Dräger"); c.setGivenName("Andreas"); h.addCreator(c); m2.unsetModelHistory(); m2.setModelHistory(h); XMLNode Ann = RDFAnnotationParser.parseModelHistory(m2); string expected = "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " Dräger\n" + " Andreas\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + ""; Ann.write(XOS2); assertEquals( true, equals(expected) ); } } }