Browse Source

Improve XmlDeclaration class test coverage

- add missing test cases
Patrick-Christopher Mattulat 2 years ago
parent
commit
f0c82cc80c

+ 5 - 5
include/ls_std/io/xml/XmlDeclaration.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-09-27
- * Changed:         2021-05-02
+ * Changed:         2021-07-16
  *
  * */
 
@@ -19,15 +19,15 @@ namespace ls_std
   {
     public:
 
-      explicit XmlDeclaration(std::string _version);
+      explicit XmlDeclaration(const std::string& _version);
       ~XmlDeclaration() override = default;
 
       std::string getEncoding();
       std::string getStandalone();
       std::string getVersion();
-      void setEncoding(std::string _encoding);
-      void setStandalone(std::string _standalone);
-      void setVersion(std::string _version);
+      void setEncoding(const std::string& _encoding);
+      void setStandalone(const std::string& _standalone);
+      void setVersion(const std::string& _version);
       std::string toXml();
 
     private:

+ 9 - 9
source/ls_std/io/xml/XmlDeclaration.cpp

@@ -3,15 +3,15 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-09-29
- * Changed:         2021-05-02
+ * Changed:         2021-07-16
  *
  * */
 
 #include <ls_std/io/xml/XmlDeclaration.hpp>
 
-ls_std::XmlDeclaration::XmlDeclaration(std::string _version) : ls_std::Class("XmlDeclaration")
+ls_std::XmlDeclaration::XmlDeclaration(const std::string& _version) : ls_std::Class("XmlDeclaration")
 {
-  this->version.setValue(std::move(_version));
+  this->version.setValue(_version);
 }
 
 std::string ls_std::XmlDeclaration::getEncoding()
@@ -29,19 +29,19 @@ std::string ls_std::XmlDeclaration::getVersion()
   return this->version.getValue();
 }
 
-void ls_std::XmlDeclaration::setEncoding(std::string _encoding)
+void ls_std::XmlDeclaration::setEncoding(const std::string& _encoding)
 {
-  this->encoding.setValue(std::move(_encoding));
+  this->encoding.setValue(_encoding);
 }
 
-void ls_std::XmlDeclaration::setStandalone(std::string _standalone)
+void ls_std::XmlDeclaration::setStandalone(const std::string& _standalone)
 {
-  this->standalone.setValue(std::move(_standalone));
+  this->standalone.setValue(_standalone);
 }
 
-void ls_std::XmlDeclaration::setVersion(std::string _version)
+void ls_std::XmlDeclaration::setVersion(const std::string& _version)
 {
-  this->version.setValue(std::move(_version));
+  this->version.setValue(_version);
 }
 
 std::string ls_std::XmlDeclaration::toXml()

+ 63 - 2
test/cases/io/xml/XmlDeclarationTest.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-09-29
- * Changed:         2021-05-02
+ * Changed:         2021-07-16
  *
  * */
 
@@ -26,6 +26,20 @@ namespace
       {}
   };
 
+  TEST_F(XmlDeclarationTest, constructor_empty_version)
+  {
+    EXPECT_THROW({
+                   try
+                   {
+                     ls_std::XmlDeclaration declaration{""};
+                   }
+                   catch (const ls_std::IllegalArgumentException &_exception)
+                   {
+                     throw;
+                   }
+                 }, ls_std::IllegalArgumentException);
+  }
+
   TEST_F(XmlDeclarationTest, getEncoding)
   {
     ls_std::XmlDeclaration declaration{"1.0"};
@@ -41,7 +55,6 @@ namespace
   TEST_F(XmlDeclarationTest, getVersion)
   {
     ls_std::XmlDeclaration declaration{"1.0"};
-    ASSERT_FALSE(declaration.getVersion().empty());
     ASSERT_STREQ("1.0", declaration.getVersion().c_str());
   }
 
@@ -55,6 +68,22 @@ namespace
     ASSERT_STREQ("iso-8859-1", declaration.getEncoding().c_str());
   }
 
+  TEST_F(XmlDeclarationTest, setEncoding_empty_encoding)
+  {
+    ls_std::XmlDeclaration declaration{"1.0"};
+
+    EXPECT_THROW({
+                   try
+                   {
+                     declaration.setEncoding("");
+                   }
+                   catch (const ls_std::IllegalArgumentException &_exception)
+                   {
+                     throw;
+                   }
+                 }, ls_std::IllegalArgumentException);
+  }
+
   TEST_F(XmlDeclarationTest, setStandalone)
   {
     ls_std::XmlDeclaration declaration{"1.0"};
@@ -65,6 +94,22 @@ namespace
     ASSERT_STREQ("no", declaration.getStandalone().c_str());
   }
 
+  TEST_F(XmlDeclarationTest, setStandalone_empty_standalone)
+  {
+    ls_std::XmlDeclaration declaration{"1.0"};
+
+    EXPECT_THROW({
+                   try
+                   {
+                     declaration.setStandalone("");
+                   }
+                   catch (const ls_std::IllegalArgumentException &_exception)
+                   {
+                     throw;
+                   }
+                 }, ls_std::IllegalArgumentException);
+  }
+
   TEST_F(XmlDeclarationTest, setVersion)
   {
     ls_std::XmlDeclaration declaration{"1.0"};
@@ -76,6 +121,22 @@ namespace
     ASSERT_STREQ("1.1", declaration.getVersion().c_str());
   }
 
+  TEST_F(XmlDeclarationTest, setVersion_empty_version)
+  {
+    ls_std::XmlDeclaration declaration{"1.0"};
+
+    EXPECT_THROW({
+                   try
+                   {
+                     declaration.setVersion("");
+                   }
+                   catch (const ls_std::IllegalArgumentException &_exception)
+                   {
+                     throw;
+                   }
+                 }, ls_std::IllegalArgumentException);
+  }
+
   TEST_F(XmlDeclarationTest, toXml)
   {
     ls_std::XmlDeclaration declaration{"1.0"};