diff --git a/test/test_select.cpp b/test/test_select.cpp
index 9d4024bb97505e72a47f2710c827ea1292703586..e15f83a7e6c1460d40c299ab2d19879f604420dd 100644
--- a/test/test_select.cpp
+++ b/test/test_select.cpp
@@ -20,28 +20,107 @@
  *
  */
 #include "caosdb/connection.h"      // for Connection, ConnectionManager
+#include "caosdb/data_type.h"                     // for AtomicDataType
 #include "caosdb/transaction.h"     // for Transaction, ResultTable
+#include "caosdb/value.h"           // for Value
 #include <gtest/gtest-message.h>    // for Message
 #include <gtest/gtest-test-part.h>  // for SuiteApiResolver, TestFactoryImpl
 #include <gtest/gtest_pred_impl.h>  // for Test, TestInfo, EXPECT_EQ, TEST
 #include <memory>                   // for allocator, unique_ptr, __shared_p...
                                     //
 namespace caosdb::transaction {
+using caosdb::entity::AtomicDataType;
+using caosdb::entity::Role;
+using caosdb::entity::Property;
+using caosdb::entity::Parent;
+using caosdb::entity::Entity;
+using caosdb::entity::Value;
+
+class test_select : public ::testing::Test {
+public:
+
+  static void DeleteEntities() {
+    // delete all entities
+    const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection();
+    auto query_transaction(connection->CreateTransaction());
+    query_transaction->Query("FIND Test*");
+    query_transaction->Execute();
+    if (query_transaction->GetResultSet().size() > 0) {
+      std::cout << "Cleanup: Deleting " << query_transaction->GetResultSet().size() << " entities."
+                << std::endl;
+      auto delete_transaction(connection->CreateTransaction());
+      for (const Entity &entity : query_transaction->GetResultSet()) {
+        delete_transaction->DeleteById(entity.GetId());
+      }
+      delete_transaction->Execute();
+    }
+  }
+
+  static auto CreateTestProp() -> Entity {
+    Entity entity;
+    entity.SetRole(Role::PROPERTY);
+    entity.SetName("TestProp");
+    entity.SetDataType(AtomicDataType::TEXT);
+    return entity;
+  }
+
+  static auto CreateTestRT() -> Entity {
+    Entity entity;
+    entity.SetRole(Role::RECORD_TYPE);
+    entity.SetName("TestRT");
+    return entity;
+  }
+
+  static auto CreateRecord(const std::string &property_name, Value value) -> Entity {
+    Entity entity;
+    entity.SetRole(Role::RECORD);
+    Parent parent;
+    parent.SetName("TestRT");
+    entity.AppendParent(parent);
+    Property property;
+    property.SetName(property_name);
+    property.SetValue(value);
+    entity.AppendProperty(property);
+
+    return entity;
+  }
+
+protected:
+  // Fixture methods //////////////////////////////////////////////////////////
+
+  void SetUp() override {
+    DeleteEntities();
+
+    const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection();
+    auto insert_transaction(connection->CreateTransaction());
+    insert_transaction->InsertEntity(CreateTestRT());
+    insert_transaction->InsertEntity(CreateTestProp());
+    insert_transaction->Execute();
+  }
+
+  void TearDown() override {
+    DeleteEntities();
+  }
+};
 
 /*
  * Test select query on empty database.
  */
-TEST(test_transaction, test_select) {
+TEST_F(test_select, test_select_name) {
   const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection();
 
   auto query_transaction(connection->CreateTransaction());
-  query_transaction->Query("SELECT name FROM ENTITY WITH id > 99");
+  query_transaction->Query("SELECT name FROM RecordType TestRT");
   query_transaction->Execute();
-  EXPECT_EQ(query_transaction->GetResultTable().size(), 0);
   EXPECT_EQ(query_transaction->GetResultTable().GetHeader().size(), 1);
   for(const auto &column : query_transaction->GetResultTable().GetHeader()) {
     EXPECT_EQ(column.GetName(), "name");
   }
+
+  EXPECT_EQ(query_transaction->GetResultTable().size(), 1);
+  for(const auto &row : query_transaction->GetResultTable().GetRows()) {
+    EXPECT_EQ(row.GetValue("name").GetAsString(), "bla");
+  }
 }
 
 } // namespace caosdb::transaction