@@ -398,7 +398,7 @@ using models::bmi::protocols::INPUT_MASS_NAME;
398398using models::bmi::protocols::OUTPUT_MASS_NAME;
399399using models::bmi::protocols::STORED_MASS_NAME;
400400using models::bmi::protocols::LEAKED_MASS_NAME;
401- using models::bmi::protocols::MassBalanceError ;
401+ using models::bmi::protocols::ProtocolError ;
402402
403403TEST_F (Bmi_C_Formulation_Test, check_mass_balance) {
404404 int ex_index = 0 ;
@@ -429,7 +429,7 @@ TEST_F(Bmi_C_Formulation_Test, check_mass_balance_warns) {
429429 formulation.check_mass_balance (0 , 1 , " t0" );
430430 std::string output = testing::internal::GetCapturedStderr ();
431431 std::cerr << output;
432- EXPECT_THAT (output, testing::HasSubstr (" mass_balance::warning " ));
432+ EXPECT_THAT (output, testing::HasSubstr (" Warning(Protocol)::mass_balance: " ));
433433}
434434
435435TEST_F (Bmi_C_Formulation_Test, check_mass_balance_stored_fails) {
@@ -444,7 +444,14 @@ TEST_F(Bmi_C_Formulation_Test, check_mass_balance_stored_fails) {
444444 double mass_error = 100 ;
445445 get_friend_bmi_model (formulation)->SetValue (STORED_MASS_NAME, &mass_error); // Force a mass balance error
446446 // formulation.check_mass_balance(0, 1, "t0");
447- ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), MassBalanceError);
447+ ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), ProtocolError);
448+ try {
449+ formulation.check_mass_balance (0 , 1 , " t0" );
450+ }
451+ catch (ProtocolError& e) {
452+ std::cerr << e.to_string () << std::endl;
453+ EXPECT_THAT (e.to_string (), MatchesRegex (" Error\\ (Protocol\\ )::mass_balance:.*" ));
454+ }
448455}
449456
450457TEST_F (Bmi_C_Formulation_Test, check_mass_balance_in_fails_a) {
@@ -457,7 +464,14 @@ TEST_F(Bmi_C_Formulation_Test, check_mass_balance_in_fails_a) {
457464 formulation.get_response (1 , 3600 );
458465 double mass_error = 2 ;
459466 get_friend_bmi_model (formulation)->SetValue (INPUT_MASS_NAME, &mass_error); // Force a mass balance error
460- ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), MassBalanceError);
467+ ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), ProtocolError);
468+ try {
469+ formulation.check_mass_balance (0 , 1 , " t0" );
470+ }
471+ catch (ProtocolError& e) {
472+ std::cerr << e.to_string () << std::endl;
473+ EXPECT_THAT (e.to_string (), MatchesRegex (" Error\\ (Protocol\\ )::mass_balance:.*" ));
474+ }
461475}
462476
463477TEST_F (Bmi_C_Formulation_Test, check_mass_balance_out_fails) {
@@ -470,7 +484,14 @@ TEST_F(Bmi_C_Formulation_Test, check_mass_balance_out_fails) {
470484 formulation.get_response (1 , 3600 );
471485 double mass_error = 2 ;
472486 get_friend_bmi_model (formulation)->SetValue (OUTPUT_MASS_NAME, &mass_error); // Force a mass balance error
473- ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), MassBalanceError);
487+ ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), ProtocolError);
488+ try {
489+ formulation.check_mass_balance (0 , 1 , " t0" );
490+ }
491+ catch (ProtocolError& e) {
492+ std::cerr << e.to_string () << std::endl;
493+ EXPECT_THAT (e.to_string (), MatchesRegex (" Error\\ (Protocol\\ )::mass_balance:.*" ));
494+ }
474495}
475496
476497TEST_F (Bmi_C_Formulation_Test, check_mass_balance_leaked_fails) {
@@ -483,7 +504,14 @@ TEST_F(Bmi_C_Formulation_Test, check_mass_balance_leaked_fails) {
483504 formulation.get_response (1 , 3600 );
484505 double mass_error = 2 ;
485506 get_friend_bmi_model (formulation)->SetValue (LEAKED_MASS_NAME, &mass_error); // Force a mass balance error
486- ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), MassBalanceError);
507+ ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), ProtocolError);
508+ try {
509+ formulation.check_mass_balance (0 , 1 , " t0" );
510+ }
511+ catch (ProtocolError& e) {
512+ std::cerr << e.to_string () << std::endl;
513+ EXPECT_THAT (e.to_string (), MatchesRegex (" Error\\ (Protocol\\ )::mass_balance:.*" ));
514+ }
487515}
488516
489517TEST_F (Bmi_C_Formulation_Test, check_mass_balance_tolerance) {
@@ -499,7 +527,14 @@ TEST_F(Bmi_C_Formulation_Test, check_mass_balance_tolerance) {
499527 get_friend_bmi_model (formulation)->GetValue (INPUT_MASS_NAME, &mass_error);
500528 mass_error += 1e-4 ; // Force a mass balance error not within tolerance
501529 get_friend_bmi_model (formulation)->SetValue (INPUT_MASS_NAME, &mass_error); // Force a mass balance error
502- ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), MassBalanceError);
530+ ASSERT_THROW (formulation.check_mass_balance (0 , 1 , " t0" ), ProtocolError);
531+ try {
532+ formulation.check_mass_balance (0 , 1 , " t0" );
533+ }
534+ catch (ProtocolError& e) {
535+ std::cerr << e.to_string () << std::endl;
536+ EXPECT_THAT (e.to_string (), MatchesRegex (" Error\\ (Protocol\\ )::mass_balance:.*" ));
537+ }
503538}
504539
505540TEST_F (Bmi_C_Formulation_Test, check_mass_balance_tolerance_a) {
@@ -559,13 +594,13 @@ TEST_F(Bmi_C_Formulation_Test, check_mass_balance_frequency) {
559594 get_friend_bmi_model (formulation)->SetValue (OUTPUT_MASS_NAME, &mass_error); //
560595 // Check initial mass balance -- should error which indicates it was propoerly checked
561596 // per frequency setting
562- ASSERT_THROW (formulation.check_mass_balance (0 , 2 , " t0" ), MassBalanceError );
597+ ASSERT_THROW (formulation.check_mass_balance (0 , 2 , " t0" ), ProtocolError );
563598 // Call mass balance check again, this should NOT error, since the actual check
564599 // should be skipped due to the frequency setting
565600 formulation.check_mass_balance (1 , 2 , " t1" );
566601 // Check mass balance again, this SHOULD error since the previous mass balance
567602 // will propagate, and it should now be checked based on the frequency
568- ASSERT_THROW (formulation.check_mass_balance (2 , 2 , " t2" ), MassBalanceError );
603+ ASSERT_THROW (formulation.check_mass_balance (2 , 2 , " t2" ), ProtocolError );
569604}
570605
571606TEST_F (Bmi_C_Formulation_Test, check_mass_balance_frequency_1) {
@@ -585,7 +620,7 @@ TEST_F(Bmi_C_Formulation_Test, check_mass_balance_frequency_1) {
585620 formulation.check_mass_balance (1 , 2 , " t1" );
586621 // Check mass balance again, this SHOULD error since the this is step 2/2
587622 // and it will now be checked based on the frequency (-1, check at end)
588- ASSERT_THROW (formulation.check_mass_balance (2 , 2 , " t2" ), MassBalanceError );
623+ ASSERT_THROW (formulation.check_mass_balance (2 , 2 , " t2" ), ProtocolError );
589624}
590625
591626#endif // NGEN_BMI_C_LIB_TESTS_ACTIVE
0 commit comments