Explorar el Código

Extended Boolean class

- added assignment operator
- extended tests for Boolean class
Patrick hace 4 años
padre
commit
b59dc43319
Se han modificado 3 ficheros con 28 adiciones y 0 borrados
  1. 12 0
      source/boxing/Boolean.cpp
  2. 5 0
      source/boxing/Boolean.hpp
  3. 11 0
      test/cases/boxing/BooleanTest.cpp

+ 12 - 0
source/boxing/Boolean.cpp

@@ -23,6 +23,18 @@ ls_std::Boolean::operator bool() const
   return this->value;
 }
 
+ls_std::Boolean & ls_std::Boolean::operator=(int _value)
+{
+  this->value = _value;
+  return *this;
+}
+
+ls_std::Boolean & ls_std::Boolean::operator=(bool _value)
+{
+  this->value = _value;
+  return *this;
+}
+
 bool ls_std::Boolean::operator&&(const Boolean &_boolean) const
 {
   return this->value && _boolean;

+ 5 - 0
source/boxing/Boolean.hpp

@@ -25,6 +25,11 @@ namespace ls_std {
 
       operator bool() const;
 
+      // assignment operators
+
+      Boolean& operator=(int _value);
+      Boolean& operator=(bool _value);
+
       // stream operators
 
       friend std::ostream& operator<<(std::ostream& outputStream, const Boolean& _boolean) {

+ 11 - 0
test/cases/boxing/BooleanTest.cpp

@@ -24,6 +24,17 @@ namespace {
       {}
   };
 
+  TEST_F(BooleanTest, operatorAssignment)
+  {
+    ls_std::Boolean expression {};
+
+    expression = true;
+    ASSERT_TRUE(expression);
+
+    expression = 1;
+    ASSERT_TRUE(expression);
+  }
+
   TEST_F(BooleanTest, operatorOutputStream)
   {
     ls_std::Boolean expression {true};