diff options
| author | Leonetienne <leonetienne@hotmail.de> | 2021-11-20 19:24:35 +0100 |
|---|---|---|
| committer | Leonetienne <leonetienne@hotmail.de> | 2021-11-20 19:24:35 +0100 |
| commit | f6b96b227196b4c2736a1716aad8968993187c8a (patch) | |
| tree | 00363db3625d2757b32c80da61ba7cc03f701724 /StringTools/Test/Replace_String.cpp | |
| parent | 87abd1cb512031ed9ca784c491858fbdadc93403 (diff) | |
Added replace methods and unit tests
Diffstat (limited to 'StringTools/Test/Replace_String.cpp')
| -rw-r--r-- | StringTools/Test/Replace_String.cpp | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/StringTools/Test/Replace_String.cpp b/StringTools/Test/Replace_String.cpp new file mode 100644 index 0000000..ff67ac4 --- /dev/null +++ b/StringTools/Test/Replace_String.cpp @@ -0,0 +1,180 @@ +#include "CppUnitTest.h"
+#include "../StringTools/StringTools.h"
+
+using namespace Microsoft::VisualStudio::CppUnitTestFramework;
+
+namespace _StringTools
+{
+ TEST_CLASS(_Replace_String)
+ {
+ public:
+
+ // Tests that replacing something in an empty string returns an empty string
+ TEST_METHOD(EmptyString)
+ {
+ // Setup
+ const std::string in = "";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "burger", "Subst");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "");
+ return;
+ }
+
+ // Tests that replacing a string to an empty string works
+ TEST_METHOD(Single_ReplaceToEmpty)
+ {
+ // Setup
+ const std::string in = "Squarepants";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "Squarepants", "");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "");
+ return;
+ }
+
+ // Tests that replacing to a single char works
+ TEST_METHOD(Single_ReplaceToSingleChar)
+ {
+ // Setup
+ const std::string in = "Squarepants";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "Squarepants", "i");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "i");
+ return;
+ }
+
+ // Tests that replacing to a single char works, passing a char
+ TEST_METHOD(Single_ReplaceToSingleChar_AsChar)
+ {
+ // Setup
+ const std::string in = "Oilbanger";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "Oilbanger", 'i');
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "i");
+ return;
+ }
+
+ // Tests that replacing the find to something longer works
+ TEST_METHOD(Single_ReplaceToLonger)
+ {
+ // Setup
+ const std::string in = "LittleDong";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "Dong", "Binger");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "LittleBinger");
+ return;
+ }
+
+ // Tests that replacing a string to an empty string works
+ TEST_METHOD(Multiple_ReplaceToEmpty)
+ {
+ // Setup
+ const std::string in = "The fucking dogs are fucking eating the fucking chicken.";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "fucking ", "");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "The dogs are eating the chicken.");
+ return;
+ }
+
+ // Tests that replacing to a single char works
+ TEST_METHOD(Multiple_ReplaceToSingleChar)
+ {
+ // Setup
+ const std::string in = "Oilbsmearynger, Bsmearyngerfsmearynger, Lsmearyttle brsmearyttle osmearyly sksmearyttle.";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "smeary", "i");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "Oilbinger, Bingerfinger, Little brittle oily skittle.");
+ return;
+ }
+
+ // Tests that replacing to a single char works, passing a char
+ TEST_METHOD(Multiple_ReplaceToSingleChar_AsChar)
+ {
+ // Setup
+ const std::string in = "Oilbsmearynger, Bsmearyngerfsmearynger, Lsmearyttle brsmearyttle osmearyly sksmearyttle.";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "smeary", 'i');
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "Oilbinger, Bingerfinger, Little brittle oily skittle.");
+ return;
+ }
+
+ // Tests that replacing the find to something longer works
+ TEST_METHOD(Multiple_ReplaceToLonger)
+ {
+ // Setup
+ const std::string in = "honk honk honk honk honk honk honk honk";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "honk", "hallery");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "hallery hallery hallery hallery hallery hallery hallery hallery");
+ return;
+ }
+
+ // Tests that the replacer ignores chars put in by the replacer
+ TEST_METHOD(ReplacerIgnoresReplaced)
+ {
+ // Setup
+ const std::string in = "honk honk honk honk honk honk honk honk";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "honk", "honka");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "honka honka honka honka honka honka honka honka");
+ return;
+ }
+
+ // Tests that replacing succesive findings works
+ TEST_METHOD(Replace_Successive)
+ {
+ // Setup
+ const std::string in = "honkhonkhonkhonkhonkhonkhonkhonk";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "honk", "hallery");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "halleryhalleryhalleryhalleryhalleryhalleryhalleryhallery");
+ return;
+ }
+
+ // Tests that if find.length() == 0, it returns just the input
+ TEST_METHOD(Find_Length0_Returns_Input)
+ {
+ // Setup
+ const std::string in = "Littled";
+
+ // Exercise
+ const std::string out = StringTools::Replace(in, "", "binger");
+
+ // Verify
+ Assert::AreEqual(out.c_str(), "Littled");
+ return;
+ }
+ };
+}
|
