webgme-bip
Version:
Design studio for component-based modeling with BIP.
291 lines (277 loc) • 9.93 kB
JavaScript
/*jshint node:true, mocha:true*/
/**
* Generated by PluginGenerator 1.7.0 from webgme on Mon Mar 20 2017 21:44:14 GMT-0500 (CDT).
*/
;
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);
}
});
});
});