Pausable.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. 'use strict';
  2. const assertJump = require('./helpers/assertJump');
  3. const PausableMock = artifacts.require('helpers/PausableMock.sol');
  4. contract('Pausable', function(accounts) {
  5. it('can perform normal process in non-pause', async function() {
  6. let Pausable = await PausableMock.new();
  7. let count0 = await Pausable.count();
  8. assert.equal(count0, 0);
  9. await Pausable.normalProcess();
  10. let count1 = await Pausable.count();
  11. assert.equal(count1, 1);
  12. });
  13. it('can not perform normal process in pause', async function() {
  14. let Pausable = await PausableMock.new();
  15. await Pausable.pause();
  16. let count0 = await Pausable.count();
  17. assert.equal(count0, 0);
  18. try {
  19. await Pausable.normalProcess();
  20. } catch(error) {
  21. assertJump(error);
  22. }
  23. let count1 = await Pausable.count();
  24. assert.equal(count1, 0);
  25. });
  26. it('can not take drastic measure in non-pause', async function() {
  27. let Pausable = await PausableMock.new();
  28. try {
  29. await Pausable.drasticMeasure();
  30. } catch(error) {
  31. assertJump(error);
  32. }
  33. const drasticMeasureTaken = await Pausable.drasticMeasureTaken();
  34. assert.isFalse(drasticMeasureTaken);
  35. });
  36. it('can take a drastic measure in a pause', async function() {
  37. let Pausable = await PausableMock.new();
  38. await Pausable.pause();
  39. await Pausable.drasticMeasure();
  40. let drasticMeasureTaken = await Pausable.drasticMeasureTaken();
  41. assert.isTrue(drasticMeasureTaken);
  42. });
  43. it('should resume allowing normal process after pause is over', async function() {
  44. let Pausable = await PausableMock.new();
  45. await Pausable.pause();
  46. await Pausable.unpause();
  47. await Pausable.normalProcess();
  48. let count0 = await Pausable.count();
  49. assert.equal(count0, 1);
  50. });
  51. });