diff --git a/test/README.md b/test/README.md
new file mode 100644
index 0000000..650adc0
--- /dev/null
+++ b/test/README.md
@@ -0,0 +1,2 @@
+
Test
+Automated tests development is in progress.
diff --git a/test/SchemaProcessor.test.js b/test/SchemaProcessor.test.js
new file mode 100644
index 0000000..03e9ed0
--- /dev/null
+++ b/test/SchemaProcessor.test.js
@@ -0,0 +1,51 @@
+/*
+ * This file is a part of "NMIG" - the database migration tool.
+ *
+ * Copyright (C) 2016 - present, Anatoly Khaytovich
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program (please see the "LICENSE.md" file).
+ * If not, see .
+ *
+ * @author Anatoly Khaytovich
+ */
+'use strict';
+
+const { assert } = require('chai');
+const createSchema = require('../src/SchemaProcessor');
+const Conversion = require('../src/Classes/Conversion');
+const TestBase = require('./Utilities/TestBase');
+
+class SchemaProcessorTest extends TestBase {
+
+ /**
+ * SchemaProcessorTest constructor.
+ */
+ constructor() {
+ super();
+ const withExistingSchema = false;
+ this.setUp(withExistingSchema);
+ }
+}
+
+const test = new SchemaProcessorTest();
+
+describe('Test schema processing cases', function () {
+ it('Should create a new schema', function(done) {
+ createSchema(test._conversion)
+ .then(() => {
+ //
+ });
+
+ //
+ });
+});
diff --git a/test/Utilities/TestBase.js b/test/Utilities/TestBase.js
new file mode 100644
index 0000000..6773ee2
--- /dev/null
+++ b/test/Utilities/TestBase.js
@@ -0,0 +1,67 @@
+/*
+ * This file is a part of "NMIG" - the database migration tool.
+ *
+ * Copyright (C) 2016 - present, Anatoly Khaytovich
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program (please see the "LICENSE.md" file).
+ * If not, see .
+ *
+ * @author Anatoly Khaytovich
+ */
+'use strict';
+
+const Main = require('../../src/Main');
+const createSchema = require('../../src/SchemaProcessor');
+
+module.exports = class TestBase {
+
+ /**
+ * TestBase constructor.
+ */
+ constructor() {
+ this._app = new Main();
+ this._conversion = null;
+ }
+
+ /**
+ * Runs before all tests in this suite.
+ *
+ * @param {Boolean} withExistingSchema
+ *
+ * @returns {undefined}
+ */
+ setUp(withExistingSchema = true) {
+ const flowPromise = this._app.readConfig()
+ .then(this._app.readExtraConfig)
+ .then(this._app.initializeConversion)
+ .then(conversion => {
+ // Make a Conversion instance available for derivative classes.
+ this._conversion = conversion;
+
+ return Promise.resolve(conversion);
+ });
+
+ if (withExistingSchema) {
+ flowPromise.then(createSchema);
+ }
+ }
+
+ /**
+ * Runs after all tests in this suite.
+ *
+ * @returns {undefined}
+ */
+ tearDown() {
+ //
+ }
+};