Skip to content

Commit

Permalink
completed class tests
Browse files Browse the repository at this point in the history
  • Loading branch information
vt4a2h committed Jul 8, 2015
1 parent d7a593f commit 9688757
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 17 deletions.
29 changes: 15 additions & 14 deletions entity/class.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ namespace entity {
*/
bool Class::containsField(const QString &name) const
{
return getField(name).operator bool();
return getField(name) != nullptr;
}

/**
Expand All @@ -360,8 +360,7 @@ namespace entity {
*/
void Class::removeField(const QString &name)
{
auto f = getField(name);
if (f)
if (auto f = getField(name))
m_Fields.removeAt(m_Fields.indexOf(f));
}

Expand Down Expand Up @@ -461,6 +460,16 @@ namespace entity {
return std::const_pointer_cast<Property>(const_cast<const Class *>(this)->property(name));
}

/**
* @brief Class::containsProperty
* @param name
* @return
*/
bool Class::containsProperty(const QString &name) const
{
return property(name) != nullptr;
}

/**
* @brief Class::removeProperty
* @param name
Expand All @@ -487,16 +496,7 @@ namespace entity {
*/
bool Class::containsFields(Section section) const
{
bool result(false);

for (auto &&field : m_Fields) {
if (field->section() == section) {
result = true;
break;
}
}

return result;
return end(m_Fields) != utility::find_if(m_Fields, [&](auto &&f){ return f->section() == section; });
}

/**
Expand All @@ -509,7 +509,8 @@ namespace entity {
FieldsList result;

for (auto &&field : m_Fields)
if (field->section() == section) result << field;
if (field->section() == section)
result << field;

return result;
}
Expand Down
6 changes: 3 additions & 3 deletions entity/class.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ namespace entity {
SharedProperty addProperty(const QString &name, const QString &typeId);
ConstSharedProperty property(const QString &name) const;
SharedProperty property(const QString &name);
bool containsProperty(const QString &name);
bool containsProperty(const QString &name) const;
void removeProperty(const QString &name);
bool anyProperties() const;

Expand All @@ -103,12 +103,12 @@ namespace entity {
MethodsList methods() const override;

SharedField addNewField() override;
void addExistsField(const SharedField &field, int pos) override;
void addExistsField(const SharedField &field, int pos = -1) override;
int removeField(const SharedField &field) override;
FieldsList fields() const override;

SharedProperty addNewProperty() override;
void addExistsProperty(const SharedProperty &property, int pos) override;
void addExistsProperty(const SharedProperty &property, int pos = -1) override;
int removeProperty(const SharedProperty &property) override;
PropertiesList properties() const override;

Expand Down
30 changes: 30 additions & 0 deletions tests/test/cases/entitiestestcases.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,36 @@ TEST_F(Enteties, Class)
ASSERT_TRUE(_class->containsMethods(entity::Protected));
ASSERT_EQ(_class->methods(entity::Protected).count(), 1);

// Fields
ASSERT_FALSE(_class->anyFields());
auto field = _class->addField("Some field", "some_id");
ASSERT_TRUE(_class->anyFields());
ASSERT_TRUE(_class->containsField(field->name()));
ASSERT_EQ(_class->getField(field->name()), field);
_class->removeField(field->name());
ASSERT_FALSE(_class->anyFields());

ASSERT_FALSE(_class->containsFields(entity::Public));
ASSERT_FALSE(_class->containsFields(entity::Private));
ASSERT_FALSE(_class->containsFields(entity::Protected));
_class->addExistsField(field);
ASSERT_TRUE(_class->containsFields(entity::Public));
field->setSection(entity::Private);
ASSERT_TRUE(_class->containsFields(entity::Private));
field->setSection(entity::Protected);
ASSERT_TRUE(_class->containsFields(entity::Protected));

// Properties
ASSERT_FALSE(_class->anyProperties());
auto property = _class->addProperty("some name", "some_id");
ASSERT_TRUE(_class->anyProperties());
ASSERT_EQ(property, _class->property(property->name()));
ASSERT_TRUE(_class->containsProperty(property->name()));
ASSERT_FALSE(_class->containsProperty("foobar"));
_class->removeProperty(property->name());
ASSERT_FALSE(_class->anyProperties());
_class->addExistsProperty(property);

test_copy_move(Class, _class)
}

Expand Down

0 comments on commit 9688757

Please sign in to comment.