Test Field

This commit is contained in:
Martchus 2018-06-09 22:24:03 +02:00
parent 132be3fd8b
commit 537c326510
4 changed files with 102 additions and 15 deletions

View File

@ -24,8 +24,10 @@ set(TEST_HEADER_FILES
)
set(TEST_SRC_FILES
tests/cppunit.cpp
tests/utils.h
tests/passwordfiletests.cpp
tests/entrytests.cpp
tests/fieldtests.cpp
tests/opensslrandomdevice.cpp
)

View File

@ -1,22 +1,9 @@
#include "../io/cryptoexception.h"
#include "../io/entry.h"
#include "../io/passwordfile.h"
#include <c++utilities/conversion/stringconversion.h>
#include <c++utilities/misc/traits.h>
namespace TestUtilities {
inline std::ostream &operator<<(std::ostream &out, const Io::Entry *entry)
{
return out << ConversionUtilities::joinStrings(entry->path(), "/");
}
} // namespace TestUtilities
using namespace TestUtilities;
#include "./utils.h"
#include <c++utilities/tests/testutils.h>
using namespace TestUtilities;
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>

72
tests/fieldtests.cpp Normal file
View File

@ -0,0 +1,72 @@
#include "../io/entry.h"
#include "../io/field.h"
#include "./utils.h"
#include <c++utilities/tests/testutils.h>
using namespace TestUtilities;
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
using namespace std;
using namespace Io;
using namespace TestUtilities::Literals;
using namespace CPPUNIT_NS;
/*!
* \brief The FieldTests class tests the Io::Field class.
*/
class FieldTests : public TestFixture {
CPPUNIT_TEST_SUITE(FieldTests);
CPPUNIT_TEST(testNewFieldCorrectlyInitialized);
CPPUNIT_TEST(testMutation);
CPPUNIT_TEST_SUITE_END();
public:
void setUp();
void tearDown();
void testNewFieldCorrectlyInitialized();
void testMutation();
};
CPPUNIT_TEST_SUITE_REGISTRATION(FieldTests);
void FieldTests::setUp()
{
}
void FieldTests::tearDown()
{
}
/*!
* \brief Tests whether a new field is correctly initialized (default values set).
*/
void FieldTests::testNewFieldCorrectlyInitialized()
{
AccountEntry account("account");
const Field emptyField(&account);
CPPUNIT_ASSERT(emptyField.isEmpty());
const Field field(&account, "foo", "bar");
CPPUNIT_ASSERT(!field.isEmpty());
CPPUNIT_ASSERT_EQUAL(&account, field.tiedAccount());
CPPUNIT_ASSERT_EQUAL("foo"s, field.name());
CPPUNIT_ASSERT_EQUAL("bar"s, field.value());
CPPUNIT_ASSERT_EQUAL(FieldType::Normal, field.type());
}
void FieldTests::testMutation()
{
AccountEntry account("account");
Field field(&account, "foo", "bar");
field.setName("bar");
field.setValue("foo");
field.setType(FieldType::Password);
CPPUNIT_ASSERT_EQUAL("bar"s, field.name());
CPPUNIT_ASSERT_EQUAL("foo"s, field.value());
CPPUNIT_ASSERT_EQUAL(FieldType::Password, field.type());
}

26
tests/utils.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef PASSWORDFILE_TESTS_UTILS_H
#define PASSWORDFILE_TESTS_UTILS_H
#include "../io/entry.h"
#include "../io/field.h"
#include <c++utilities/conversion/stringconversion.h>
#include <c++utilities/misc/traits.h>
#include <ostream>
namespace TestUtilities {
inline std::ostream &operator<<(std::ostream &out, const Io::Entry *entry)
{
return out << ConversionUtilities::joinStrings(entry->path(), "/");
}
inline std::ostream &operator<<(std::ostream &out, const Io::Field *field)
{
return out << field->name() << '=' << field->value();
}
} // namespace TestUtilities
#endif // PASSWORDFILE_TESTS_UTILS_H