@@ -217,13 +217,13 @@ START_TEST(test_conversion_raterule_converter_invalid)
217217 SBMLDocument* doc = NULL ;
218218 rule_rn_converter->setDocument (doc);
219219
220- fail_unless (rule_rn_converter->convert () == LIBSBML_INVALID_OBJECT );
220+ fail_unless (rule_rn_converter->convert () == LIBSBML_OPERATION_FAILED );
221221
222222 // test NULL model
223223 doc = new SBMLDocument (3 , 2 );
224224 rule_rn_converter->setDocument (doc);
225225
226- fail_unless (rule_rn_converter->convert () == LIBSBML_INVALID_OBJECT );
226+ fail_unless (rule_rn_converter->convert () == LIBSBML_OPERATION_FAILED );
227227
228228 // create model no rules
229229 Model* model = doc->createModel ();
@@ -252,7 +252,7 @@ START_TEST(test_conversion_raterule_converter_invalid)
252252 // invalid document
253253 rule_rn_converter->setDocument (doc);
254254
255- fail_unless (rule_rn_converter->convert () == LIBSBML_CONV_INVALID_SRC_DOCUMENT );
255+ fail_unless (rule_rn_converter->convert () == LIBSBML_OPERATION_FAILED );
256256
257257 delete doc;
258258}
@@ -375,7 +375,7 @@ START_TEST(test_crash_converter)
375375
376376 // ensure that we dont crash on null document
377377 rule_rn_converter->setDocument ((SBMLDocument*)NULL );
378- fail_unless (rule_rn_converter->convert () == LIBSBML_INVALID_OBJECT );
378+ fail_unless (rule_rn_converter->convert () == LIBSBML_OPERATION_FAILED );
379379
380380}
381381END_TEST
@@ -1026,6 +1026,115 @@ START_TEST(test_rule_reaction_55)
10261026}
10271027END_TEST
10281028
1029+ START_TEST (test_converter_errors)
1030+ {
1031+ std::string raterule_file (TestDataDirectory);
1032+ raterule_file += " rn_rr_fail_90101.xml" ;
1033+
1034+ SBMLDocument* d = readSBMLFromFile (raterule_file.c_str ());
1035+
1036+ rule_rn_props.addOption (" useStoichiometryFromMath" , true );
1037+ rule_rn_converter->setProperties (&rule_rn_props);
1038+
1039+
1040+ rule_rn_converter->setDocument (d);
1041+ int ret = rule_rn_converter->convert ();
1042+ fail_unless (ret == LIBSBML_OPERATION_FAILED);
1043+ fail_unless (d->getNumErrors () == 2 );
1044+ // we'll also contain 20201 - model must contain a document
1045+ fail_unless (d->getError (1 )->getErrorId () == 90101 );
1046+ fail_unless (d->getError (1 )->getCategory () == LIBSBML_CAT_RATE_RULE_CONVERSION);
1047+
1048+ delete d;
1049+ }
1050+ END_TEST
1051+
1052+ START_TEST (test_converter_errors_1)
1053+ {
1054+ std::string raterule_file (TestDataDirectory);
1055+ raterule_file += " rn_rr_fail_90102_1.xml" ;
1056+
1057+ SBMLDocument* d = readSBMLFromFile (raterule_file.c_str ());
1058+
1059+ rule_rn_props.addOption (" useStoichiometryFromMath" , true );
1060+ rule_rn_converter->setProperties (&rule_rn_props);
1061+
1062+
1063+ rule_rn_converter->setDocument (d);
1064+ int ret = rule_rn_converter->convert ();
1065+ fail_unless (ret == LIBSBML_OPERATION_SUCCESS);
1066+ fail_unless (d->getNumErrors () == 1 );
1067+ fail_unless (d->getError (0 )->getErrorId () == 90102 );
1068+ fail_unless (d->getError (0 )->getCategory () == LIBSBML_CAT_RATE_RULE_CONVERSION);
1069+
1070+ delete d;
1071+ }
1072+ END_TEST
1073+
1074+ START_TEST (test_converter_errors_2)
1075+ {
1076+ std::string raterule_file (TestDataDirectory);
1077+ raterule_file += " rn_rr_fail_90102_2.xml" ;
1078+
1079+ SBMLDocument* d = readSBMLFromFile (raterule_file.c_str ());
1080+
1081+ rule_rn_props.addOption (" useStoichiometryFromMath" , true );
1082+ rule_rn_converter->setProperties (&rule_rn_props);
1083+
1084+
1085+ rule_rn_converter->setDocument (d);
1086+ int ret = rule_rn_converter->convert ();
1087+ fail_unless (ret == LIBSBML_OPERATION_SUCCESS);
1088+ fail_unless (d->getNumErrors () == 1 );
1089+ fail_unless (d->getError (0 )->getErrorId () == 90102 );
1090+ fail_unless (d->getError (0 )->getCategory () == LIBSBML_CAT_RATE_RULE_CONVERSION);
1091+
1092+ delete d;
1093+ }
1094+ END_TEST
1095+ START_TEST (test_converter_errors_3)
1096+ {
1097+ std::string raterule_file (TestDataDirectory);
1098+ raterule_file += " rn_rr_fail_90103.xml" ;
1099+
1100+ SBMLDocument* d = readSBMLFromFile (raterule_file.c_str ());
1101+
1102+ rule_rn_props.addOption (" useStoichiometryFromMath" , true );
1103+ rule_rn_converter->setProperties (&rule_rn_props);
1104+
1105+
1106+ rule_rn_converter->setDocument (d);
1107+ int ret = rule_rn_converter->convert ();
1108+ fail_unless (ret == LIBSBML_OPERATION_FAILED);
1109+ fail_unless (d->getNumErrors () == 1 );
1110+ fail_unless (d->getError (0 )->getErrorId () == 90103 );
1111+ fail_unless (d->getError (0 )->getCategory () == LIBSBML_CAT_RATE_RULE_CONVERSION);
1112+
1113+ delete d;
1114+ }
1115+ END_TEST
1116+ START_TEST (test_converter_errors_4)
1117+ {
1118+ std::string raterule_file (TestDataDirectory);
1119+ raterule_file += " rn_rr_fail_90104.xml" ;
1120+
1121+ SBMLDocument* d = readSBMLFromFile (raterule_file.c_str ());
1122+
1123+ rule_rn_props.addOption (" useStoichiometryFromMath" , true );
1124+ rule_rn_converter->setProperties (&rule_rn_props);
1125+
1126+
1127+ rule_rn_converter->setDocument (d);
1128+ int ret = rule_rn_converter->convert ();
1129+ fail_unless (ret == LIBSBML_OPERATION_FAILED);
1130+ fail_unless (d->getNumErrors () == 1 );
1131+ fail_unless (d->getError (0 )->getErrorId () == 90104 );
1132+ fail_unless (d->getError (0 )->getCategory () == LIBSBML_CAT_RATE_RULE_CONVERSION);
1133+
1134+ delete d;
1135+ }
1136+ END_TEST
1137+
10291138Suite *
10301139create_suite_TestSBMLRateRuleConverter (void )
10311140{
@@ -1070,6 +1179,14 @@ Suite *suite = suite_create("SBMLRateRuleConverter");
10701179 // tcase_add_test(tcase, test_rule_reaction_53);
10711180 // tcase_add_test(tcase, test_rule_reaction_54);
10721181 // tcase_add_test(tcase, test_rule_reaction_55);
1182+ tcase_add_test (tcase, test_converter_errors);
1183+ tcase_add_test (tcase, test_converter_errors_1);
1184+ tcase_add_test (tcase, test_converter_errors_2);
1185+ tcase_add_test (tcase, test_converter_errors_3);
1186+ tcase_add_test (tcase, test_converter_errors_4);
1187+
1188+
1189+
10731190 }
10741191 suite_add_tcase (suite, tcase);
10751192
0 commit comments