commit 90dfeb497c4650fcd46fe2dff35d18be9cb8d6e6
Author: Christian Ehringfeld <c.ehringfeld@t-online.de>
Date:   Sat Mar 26 00:02:49 2016 +0100

    enum fix

diff --git a/src/entityinstancefactory.cpp b/src/entityinstancefactory.cpp
index 1a77cb4..ef38a0d 100644
--- a/src/entityinstancefactory.cpp
+++ b/src/entityinstancefactory.cpp
@@ -83,7 +83,7 @@ void EntityInstanceFactory::setAttributes(Entity *&e,
                 QMetaProperty prop = metaprops.value(iterator.key());
                 if (prop.isWritable()) {
                     if (prop.isEnumType()) {
-                        prop.write(e, prop.enumerator().key(iterator.value().toInt()));
+                        prop.write(e, prop.enumerator().valueToKey(iterator.value().toInt()));
                     } else {
                         prop.write(e, iterator.value());
                     }
diff --git a/tests/em/tst_querybuilder.cpp b/tests/em/tst_querybuilder.cpp
index fc0754b..0ebc470 100644
--- a/tests/em/tst_querybuilder.cpp
+++ b/tests/em/tst_querybuilder.cpp
@@ -6,7 +6,8 @@ void QuerybuilderTest::initTestCase() {
     CuteEntityManager::EntityInstanceFactory::registerClass<Person>();
     CuteEntityManager::EntityInstanceFactory::registerClass<Employee>();
     CuteEntityManager::EntityInstanceFactory::registerClass<WorkerGroup>();
-    this->e = new CuteEntityManager::EntityManager("QSQLITE", ":memory:", "", "", "", "",
+    this->e = new CuteEntityManager::EntityManager("QSQLITE",
+            QDir::currentPath() + "/db.sqlite", "", "", "", "",
             true, "foreign_keys = ON", false);
     QStringList inits = QStringList() << "Person" << "Group" << "Employee" << "WorkerGroup";
     QVERIFY2(this->e->startup("queryBuilderTest", inits), "Failure");
@@ -213,6 +214,17 @@ void QuerybuilderTest::testQueryBuilderManyToManyRelationAttribute() {
     QCOMPARE(groupList.at(0)->getPersons().size(), 3);
 }
 
+void QuerybuilderTest::testEnum() {
+    auto qb = e->getQueryBuilder();
+    Query q = Query();
+    QVariant var;
+    var.setValue<Person::Gender>(Person::Gender::FEMALE);
+    q.appendWhere(q.equal(qb, "gender", var.toInt()));
+    QList<QSharedPointer<Person>> females = e->find<Person>(q, false);
+    QCOMPARE(females.size(), 4);
+    QCOMPARE(females.first()->getGender(), Person::Gender::FEMALE);
+}
+
 void QuerybuilderTest::testRefresh() {
     e->clearCache();
     auto persons = e->findAll<Person>(false);
diff --git a/tests/em/tst_querybuilder.h b/tests/em/tst_querybuilder.h
index ff7141e..fd60dfc 100644
--- a/tests/em/tst_querybuilder.h
+++ b/tests/em/tst_querybuilder.h
@@ -27,6 +27,7 @@ class QuerybuilderTest : public QObject {
     void testQueryBuilderSingleAttributeOr();
     void testQueryBuilderManyToOneRelationAttribute();
     void testQueryBuilderManyToManyRelationAttribute();
+    void testEnum();
     void testRefresh();
 
   private:
diff --git a/tests/models.h b/tests/models.h
index 90deeed..990eb3a 100644
--- a/tests/models.h
+++ b/tests/models.h
@@ -24,7 +24,7 @@ class Person: public Entity {
                getMaintainedGroups WRITE setMaintainedGroups)
 
   public:
-    enum class Gender {MALE, FEMALE, UNKNOWNGENDER};
+    enum class Gender {MALE=109, FEMALE=102, UNKNOWNGENDER=0};
 #if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
     Q_ENUM(Gender)
 #else
