stromdao-businessobject
Version:
Abstract BusinessObject for StromDAO Energy Blockchain. Abstraction layer between blockchain technology and business logic providing energy market related entities and use cases.
80 lines (70 loc) • 2.65 kB
JavaScript
/**
StromDAO Business Object - MPReading (IoT) testing for Energy Blockchain
*/
var assert = require('assert');
var StromDAONode = require("../StromDAONode.js");
describe('StromDAO: Meter Point Reading (IoT) for Energy Blockchain ', function() {
this.timeout(300000);
var external_id = Math.random()*10000000;
var node = new StromDAONode.Node({external_id:external_id,testMode:true});
var known_rolelookup = '0x0000000000000000000000000000000000000006';
var my_reading_1=Math.round(Math.random()*10000000);
var my_reading_2=Math.round(my_reading_1+(Math.random()*100+1));
var my_reading_3=Math.round(my_reading_2-(Math.random()*100+1));
console.log("Consens Parameters for this test instance:");
console.log(" - MyAddress:",node.wallet.address);
console.log(" - Private Key:",node.wallet.privateKey);
console.log(" - Reading#1:",my_reading_1);
console.log(" - Reading#2:",my_reading_2);
console.log(" - Reading#3:",my_reading_3);
describe('Usecase: Connect new Meterpoint to Consensus System', function() {
it('Set my reading #1 according to MPR contract', function(done) {
node.mpr().then( function(mpr) {
mpr.storeReading(my_reading_1).then( function(tx_result) {
assert.equal(tx_result.length,66);
done();
});
});
});
it('Get my reading #1', function(done) {
node.mpr().then( function(mpr) {
mpr.readings(node.wallet.address).then( function(tx_result) {
assert.equal(tx_result.power.toString(),my_reading_1);
done();
});
});
});
it('Set my reading #2 (higher than #1)', function(done) {
node.mpr().then( function(mpr) {
mpr.storeReading(my_reading_2).then( function(tx_result) {
assert.equal(tx_result.length,66);
done();
});
});
});
it('Get my reading #2', function(done) {
node.mpr().then( function(mpr) {
mpr.readings(node.wallet.address).then( function(tx_result) {
assert.equal(tx_result.power.toString(),my_reading_2);
done();
});
});
});
it('Set my reading #3 (lower than #2)', function(done) {
node.mpr().then( function(mpr) {
mpr.storeReading(my_reading_2).then( function(tx_result) {
assert.equal(tx_result.length,66);
done();
});
});
});
it('Get my reading #3 (should stil be #2)', function(done) {
node.mpr().then( function(mpr) {
mpr.readings(node.wallet.address).then( function(tx_result) {
assert.equal(tx_result.power.toString(),my_reading_2);
done();
});
});
});
});
});