123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- contract('Stoppable', function(accounts) {
- it("can perform normal process in non-emergency", function(done) {
- var stoppable;
- return StoppableMock.new()
- .then(function(_stoppable) {
- stoppable = _stoppable;
- return stoppable.count();
- })
- .then(function(count) {
- assert.equal(count, 0);
- })
- .then(function () {
- return stoppable.normalProcess();
- })
- .then(function() {
- return stoppable.count();
- })
- .then(function(count) {
- assert.equal(count, 1);
- })
- .then(done);
- });
- it("can not perform normal process in emergency", function(done) {
- var stoppable;
- return StoppableMock.new()
- .then(function(_stoppable) {
- stoppable = _stoppable;
- return stoppable.emergencyStop();
- })
- .then(function () {
- return stoppable.count();
- })
- .then(function(count) {
- assert.equal(count, 0);
- })
- .then(function () {
- return stoppable.normalProcess();
- })
- .then(function() {
- return stoppable.count();
- })
- .then(function(count) {
- assert.equal(count, 0);
- })
- .then(done);
- });
- it("can not take drastic measure in non-emergency", function(done) {
- var stoppable;
- return StoppableMock.new()
- .then(function(_stoppable) {
- stoppable = _stoppable;
- return stoppable.drasticMeasure();
- })
- .then(function() {
- return stoppable.drasticMeasureTaken();
- })
- .then(function(taken) {
- assert.isFalse(taken);
- })
- .then(done);
- });
- it("can take a drastic measure in an emergency", function(done) {
- var stoppable;
- return StoppableMock.new()
- .then(function(_stoppable) {
- stoppable = _stoppable;
- return stoppable.emergencyStop();
- })
- .then(function() {
- return stoppable.drasticMeasure();
- })
- .then(function() {
- return stoppable.drasticMeasureTaken();
- })
- .then(function(taken) {
- assert.isTrue(taken);
- })
- .then(done);
- });
- it("should resume allowing normal process after emergency is over", function(done) {
- var stoppable;
- return StoppableMock.new()
- .then(function(_stoppable) {
- stoppable = _stoppable;
- return stoppable.emergencyStop();
- })
- .then(function () {
- return stoppable.release();
- })
- .then(function() {
- return stoppable.normalProcess();
- })
- .then(function() {
- return stoppable.count();
- })
- .then(function(count) {
- assert.equal(count, 1);
- })
- .then(done);
- });
- });
|