diff --git a/database/schema.py b/database/schema.py
index 5b27140e7cfbc20d66b2cb3e0251f8a49623ab2d..c4df8d23e128d89c7e6a1946d5957bfd1e688e32 100644
--- a/database/schema.py
+++ b/database/schema.py
@@ -37,6 +37,19 @@ class Application(SQLAlchemyObjectType):
         interfaces = (relay.Node, )
 
 
+class CreateApplication(graphene.Mutation):
+    class Arguments:
+        name = graphene.String(required=True)
+
+    application = graphene.Field(Application)
+
+    def mutate(self, info, name):
+        application = ApplicationModel(name=name)
+        user_datastore.db.session().add(application)
+        user_datastore.commit()
+        return CreateApplication(application=application)
+
+
 class Role(SQLAlchemyObjectType):
     class Meta:
         model = RoleModel
@@ -86,6 +99,7 @@ class Query(graphene.ObjectType):
 class Mutation(graphene.ObjectType):
     create_user = UserMutation.Field()
     create_role = CreateRole.Field()
+    create_application = CreateApplication.Field()
     add_role_to_user = AddRoleToUser.Field()
 
 
diff --git a/test/test_graphql.py b/test/test_graphql.py
index f402dda156a036e66684e49ed45fbe3248e1e3b4..c847f6ee04671b9707ce837299222aba8c7d5a27 100644
--- a/test/test_graphql.py
+++ b/test/test_graphql.py
@@ -5,7 +5,7 @@ from app import app
 from flask_testing import LiveServerTestCase
 from json import loads
 from database.database import db_session
-from database.models import User, Role
+from database.models import User, Role, Application
 
 class GraphQlTests(LiveServerTestCase):
 
@@ -30,7 +30,11 @@ class GraphQlTests(LiveServerTestCase):
             role.users = []
             db_session.delete(role)
             db_session.commit()
-
+        application = db_session.query(Application).filter_by(name="testapp").first()
+        if application is not None:
+            application.users = []
+            db_session.delete(application)
+            db_session.commit()
 
     def test_query_create_and_get_user(self):
         username = "graphqluser"
@@ -140,3 +144,22 @@ class GraphQlTests(LiveServerTestCase):
                 description}}}}}}
         '''.format(name, description).strip()
         return loads(self.client.execute(querystring))
+
+    def test_create_application(self):
+        application_name = "testapp"
+        result = self._create_application(application_name)
+        self.assertIn("data", result)
+        self.assertIn("createApplication", result["data"])
+        self.assertIn("application", result["data"]["createApplication"])
+        application = result["data"]["createApplication"]["application"]
+        self.assertEqual(application["name"], application_name)
+
+    def _create_application(self, name):
+        querystring = '''
+        mutation{{
+          createApplication(
+            name: "{0}"){{
+              application{{
+                name}}}}}}
+        '''.format(name).strip()
+        return loads(self.client.execute(querystring))