@@ -42,36 +42,36 @@ class AnalysisDataServiceTest : public CxxTest::TestSuite {
42
42
43
43
void setUp () override { ads.clear (); }
44
44
45
- void testIsValidReturnsEmptyStringForValidPythonNames () {
46
- TS_ASSERT_EQUALS (ads.isValid (" a" ), " " );
47
- TS_ASSERT_EQUALS (ads.isValid (" Z" ), " " );
48
- TS_ASSERT_EQUALS (ads.isValid (" camelCase" ), " " );
49
- TS_ASSERT_EQUALS (ads.isValid (" PascalCase" ), " " );
50
- TS_ASSERT_EQUALS (ads.isValid (" has_Underscore" ), " " );
51
- TS_ASSERT_EQUALS (ads.isValid (" _starts_with_underscore" ), " " );
52
- TS_ASSERT_EQUALS (ads.isValid (" ends_with_underscore_" ), " " );
53
- TS_ASSERT_EQUALS (ads.isValid (" __l_o_t_s__o_f__u_n_d_e_r_s_c_o_r_e_s__" ), " " );
54
- TS_ASSERT_EQUALS (ads.isValid (" alllowercase" ), " " );
55
- TS_ASSERT_EQUALS (ads.isValid (" ALLUPPERCASE" ), " " );
56
- TS_ASSERT_EQUALS (ads.isValid (" Numb3rs" ), " " );
57
- TS_ASSERT_EQUALS (ads.isValid (" _m0r3_numb3r5" ), " " );
58
- TS_ASSERT_EQUALS (ads.isValid (" _" ), " " );
59
- TS_ASSERT_EQUALS (ads.isValid (" ___" ), " " );
60
- }
61
-
62
- void testIsValidReturnsErrorStringForNamesContainingIllegalCharacters () {
45
+ void testValidateNameReturnsEmptyStringForValidPythonNames () {
46
+ TS_ASSERT_EQUALS (ads.validateName (" a" ), " " );
47
+ TS_ASSERT_EQUALS (ads.validateName (" Z" ), " " );
48
+ TS_ASSERT_EQUALS (ads.validateName (" camelCase" ), " " );
49
+ TS_ASSERT_EQUALS (ads.validateName (" PascalCase" ), " " );
50
+ TS_ASSERT_EQUALS (ads.validateName (" has_Underscore" ), " " );
51
+ TS_ASSERT_EQUALS (ads.validateName (" _starts_with_underscore" ), " " );
52
+ TS_ASSERT_EQUALS (ads.validateName (" ends_with_underscore_" ), " " );
53
+ TS_ASSERT_EQUALS (ads.validateName (" __l_o_t_s__o_f__u_n_d_e_r_s_c_o_r_e_s__" ), " " );
54
+ TS_ASSERT_EQUALS (ads.validateName (" alllowercase" ), " " );
55
+ TS_ASSERT_EQUALS (ads.validateName (" ALLUPPERCASE" ), " " );
56
+ TS_ASSERT_EQUALS (ads.validateName (" Numb3rs" ), " " );
57
+ TS_ASSERT_EQUALS (ads.validateName (" _m0r3_numb3r5" ), " " );
58
+ TS_ASSERT_EQUALS (ads.validateName (" _" ), " " );
59
+ TS_ASSERT_EQUALS (ads.validateName (" ___" ), " " );
60
+ }
61
+
62
+ void testValidateNameReturnsErrorStringForNamesContainingIllegalCharacters () {
63
63
const std::string illegalChars = " +-/*\\ %<>&|^~=!@()[]{},:.`$'\" ?" ;
64
64
for (const char &illegalChar : illegalChars) {
65
65
const std::string illegalName = std::string (" variable_name" ) + illegalChar;
66
66
std::string expectedError =
67
67
" Invalid object name '" + illegalName +
68
68
" '. Names must start with a letter or underscore and contain only alpha-numeric characters and underscores." ;
69
- TS_ASSERT_EQUALS (ads.isValid (illegalName), expectedError);
69
+ TS_ASSERT_EQUALS (ads.validateName (illegalName), expectedError);
70
70
}
71
71
}
72
72
73
- void testIsValidReturnsErrorStringForNamesStartingWithNumbers () {
74
- TS_ASSERT_EQUALS (ads.isValid (" 7dodgy_name" ),
73
+ void testValidateNameReturnsErrorStringForNamesStartingWithNumbers () {
74
+ TS_ASSERT_EQUALS (ads.validateName (" 7dodgy_name" ),
75
75
" Invalid object name '7dodgy_name'. Names must start with a letter or underscore and contain only "
76
76
" alpha-numeric characters and underscores." );
77
77
}
@@ -151,13 +151,9 @@ class AnalysisDataServiceTest : public CxxTest::TestSuite {
151
151
TS_ASSERT_THROWS_NOTHING (ads.remove (name));
152
152
}
153
153
154
- void test_Add_With_Name_Containing_Illegal_Characters_Throws_Invalid_Argument () {
155
- this ->doAddingOnInvalidNameTests (false /* Don't use replace*/ );
156
- }
154
+ void testAddWithInvalidName () { this ->doAddingOnInvalidNameTests (false /* Don't use replace*/ ); }
157
155
158
- void test_AddOrReplace_With_Name_Containing_Illegal_Characters_Throws_Invalid_Argument () {
159
- this ->doAddingOnInvalidNameTests (true /* Use replace*/ );
160
- }
156
+ void testAddOrReplaceWithInvalidName () { this ->doAddingOnInvalidNameTests (true /* Use replace*/ ); }
161
157
162
158
void test_AddOrReplace_Does_Not_Throw_When_Adding_Object_That_Has_A_Name_That_Already_Exists () {
163
159
const std::string name (" MySpaceAddOrReplace" );
@@ -542,18 +538,29 @@ class AnalysisDataServiceTest : public CxxTest::TestSuite {
542
538
for (const char &illegalChar : illegalChars) {
543
539
// Build illegal name
544
540
std::string name = std::string (" ws" ) + illegalChar + " name" ;
545
- // Add it
541
+
542
+ #ifndef NDEBUG
543
+ // In debug mode, illegal workspace names throw exceptions.
546
544
std::string errorMsg =
547
545
std::string (" Expected ADS to throw with illegal character " ) + illegalChar + " in workspace name." ;
548
546
if (replace) {
549
547
TSM_ASSERT_THROWS (errorMsg, addToADS (name), const std::invalid_argument &);
550
548
} else {
551
549
TSM_ASSERT_THROWS (errorMsg, addOrReplaceToADS (name), const std::invalid_argument &);
552
550
}
553
- bool stored = ads.doesExist (name);
554
- TS_ASSERT_EQUALS (stored, false );
555
- if (stored)
556
- ads.remove (name); // Clear up if the test fails so that it dones't impact on others.
551
+ TS_ASSERT (!ads.doesExist (name));
552
+ #else
553
+ // In release mode, a warning is printed but no exception is thrown.
554
+ std::string errorMsg =
555
+ std::string (" Expected ADS not to throw with illegal character " ) + illegalChar + " in workspace name." ;
556
+ if (replace) {
557
+ TSM_ASSERT_THROWS_NOTHING (errorMsg, addToADS (name));
558
+ } else {
559
+ TSM_ASSERT_THROWS_NOTHING (errorMsg, addOrReplaceToADS (name));
560
+ }
561
+ TS_ASSERT (ads.doesExist (name));
562
+ #endif
563
+ ads.remove (name); // Clear up if the test fails so that it dones't impact on others.
557
564
}
558
565
}
559
566
0 commit comments