UNPKG

webgme-bip

Version:

Design studio for component-based modeling with BIP.

291 lines (277 loc) 9.93 kB
/*jshint node:true, mocha:true*/ /** * Generated by PluginGenerator 1.7.0 from webgme on Mon Mar 20 2017 21:44:14 GMT-0500 (CDT). */ 'use strict'; var testFixture = require('../../globals'); describe('JavaBIPEngine', function () { var gmeConfig = testFixture.getGmeConfig(), expect = testFixture.expect, logger = testFixture.logger.fork('JavaBIPEngine'), PluginCliManager = testFixture.WebGME.PluginCliManager, projectName = 'testProject', pluginName = 'JavaBIPEngine', project, gmeAuth, storage, commitHash; this.timeout(20000); before(function (done) { testFixture.clearDBAndGetGMEAuth(gmeConfig, projectName) .then(function (gmeAuth_) { gmeAuth = gmeAuth_; // This uses in memory storage. Use testFixture.getMongoStorage to persist test to database. storage = testFixture.getMemoryStorage(logger, gmeConfig, gmeAuth); return storage.openDatabase(); }) .then(function () { var importParam = { projectSeed: testFixture.path.join(__dirname, 'JavaBIPEngine_violations.webgmex'), projectName: projectName, branchName: 'master', logger: logger, gmeConfig: gmeConfig }; return testFixture.importProject(storage, importParam); }) .then(function (importResult) { project = importResult.project; commitHash = importResult.commitHash; return project.createBranch('test', commitHash); }) .nodeify(done); }); after(function (done) { storage.closeDatabase() .then(function () { return gmeAuth.unload(); }) .nodeify(done); }); it('should succeed on valid model', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = { transitions: 1000, cardinality: 2, p: 3, t: 3 }, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/u', }; this.timeout(50000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(err).to.equal(null); expect(typeof pluginResult).to.equal('object'); expect(pluginResult.success).to.equal(true); done(); } catch (e) { done(e); } }); }); it('should fail on non equal matching factors', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = { transitions: 1000, cardinality: 3, k: 3, n: 3, m: 3 }, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/e', }; this.timeout(20000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(pluginResult.success).to.equal(false); expect(pluginResult.error).to.include('inconsistencies'); expect(pluginResult.messages.length).to.equal(4); done(); } catch (e) { done(e); } }); }); it('should succeed on valid model', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = { transitions: 1000, cardinality: 3, k: 3, n: 3, m: 3 }, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/9', }; this.timeout(50000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(err).to.equal(null); expect(typeof pluginResult).to.equal('object'); expect(pluginResult.success).to.equal(true); done(); } catch (e) { done(e); } }); }); it('should fail on inconsistency', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = { transitions: 1000, cardinality: 2, p: 1, t: 3 }, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/u', }; this.timeout(50000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(pluginResult.success).to.equal(false); expect(pluginResult.error).to.include('inconsistencies'); expect(pluginResult.messages.length).to.equal(1); done(); } catch (e) { done(e); } }); }); it('should succeed on valid model', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = { transitions: 1000, cardinality: 1, n: 3 }, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/t', }; this.timeout(50000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(err).to.equal(null); expect(typeof pluginResult).to.equal('object'); expect(pluginResult.success).to.equal(true); done(); } catch (e) { done(e); } }); }); it('should fail on invalid cardinality n*', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = {}, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/n/S', }; this.timeout(10000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(pluginResult.success).to.equal(false); expect(pluginResult.error).to.include('violation(s)'); expect(pluginResult.messages.length).to.equal(1); done(); } catch (e) { done(e); } }); }); it('should fail on invalid cardinality ne^2', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = {}, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/n/6', }; this.timeout(20000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(pluginResult.success).to.equal(false); expect(pluginResult.error).to.include('violation(s)'); expect(pluginResult.messages.length).to.equal(1); done(); } catch (e) { done(e); } }); }); it('should fail on invalid cardinality e!', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = {}, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/n/A', }; this.timeout(20000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(pluginResult.success).to.equal(false); //expect(pluginResult).to.deep.equal({}); expect(pluginResult.error).to.include('violation(s)'); expect(pluginResult.messages.length).to.equal(1); done(); } catch (e) { done(e); } }); }); it('should fail on invalid cardinality 2+1-', function (done) { var manager = new PluginCliManager(null, logger, gmeConfig), pluginConfig = {}, context = { project: project, commitHash: commitHash, branchName: 'test', activeNode: '/f/n/T', }; this.timeout(20000); manager.executePlugin(pluginName, pluginConfig, context, function (err, pluginResult) { try { expect(pluginResult.success).to.equal(false); //expect(pluginResult).to.deep.equal({}); expect(pluginResult.error).to.include('violation(s)'); expect(pluginResult.messages.length).to.equal(1); done(); } catch (e) { done(e); } }); }); });