/sigmah/src/test/java/org/sigmah/client/page/config/DbUserTest.java

http://sigma-h.googlecode.com/ · Java · 133 lines · 73 code · 36 blank · 24 comment · 0 complexity · 245d879295a29d1fcb48834122735b9f MD5 · raw file

  1. /*
  2. * All Sigmah code is released under the GNU General Public License v3
  3. * See COPYRIGHT.txt and LICENSE.txt.
  4. */
  5. package org.sigmah.client.page.config;
  6. import com.extjs.gxt.ui.client.store.Record;
  7. import org.junit.Assert;
  8. import org.junit.Test;
  9. import org.sigmah.client.mock.DispatcherStub;
  10. import org.sigmah.client.mock.DummyData;
  11. import org.sigmah.client.mock.MockEventBus;
  12. import org.sigmah.client.mock.MockStateManager;
  13. import org.sigmah.client.page.common.toolbar.UIActions;
  14. import org.sigmah.shared.command.GetUsers;
  15. import org.sigmah.shared.command.UpdateUserPermissions;
  16. import org.sigmah.shared.command.result.UserResult;
  17. import org.sigmah.shared.command.result.VoidResult;
  18. import org.sigmah.shared.dto.SchemaDTO;
  19. import static org.easymock.EasyMock.*;
  20. /**
  21. * @author Alex Bertram
  22. */
  23. public class DbUserTest {
  24. @Test
  25. public void testSaveButtonEnabled() {
  26. // Test Data
  27. UserResult users = DummyData.RRM_Users();
  28. SchemaDTO schema = DummyData.PEAR();
  29. // Collaborator: command service
  30. DispatcherStub service = new DispatcherStub();
  31. service.setResult(GetUsers.class, users);
  32. // Collaborator: View
  33. DbUserEditor.View view = createNiceMock(DbUserEditor.View.class);
  34. view.setActionEnabled(UIActions.save, false);
  35. replay(view);
  36. // Class under test
  37. DbUserEditor editor = new DbUserEditor(new MockEventBus(), service, new MockStateManager(), view);
  38. // VERIFY save button is initially disabled
  39. editor.go(schema.getDatabaseById(1), new DbPageState(DbUserEditor.DatabaseUsers, 1));
  40. verify(view);
  41. // VERIFY that following a modification the button is enabled
  42. reset(view);
  43. view.setActionEnabled(UIActions.save, true);
  44. replay(view);
  45. Record record = editor.getStore().getRecord(users.getData().get(0));
  46. record.set("allowViewAll", true);
  47. verify(view);
  48. }
  49. @Test
  50. public void testSave() {
  51. // Test Data
  52. UserResult users = DummyData.RRM_Users();
  53. SchemaDTO schema = DummyData.PEAR();
  54. // Collaborator: command service
  55. DispatcherStub service = new DispatcherStub();
  56. service.setResult(GetUsers.class, users);
  57. service.setResult(UpdateUserPermissions.class, new VoidResult());
  58. // Collaborator: View
  59. DbUserEditor.View view = createNiceMock(DbUserEditor.View.class);
  60. replay(view);
  61. // Class under test
  62. DbUserEditor editor = new DbUserEditor(new MockEventBus(), service, new MockStateManager(), view);
  63. editor.go(schema.getDatabaseById(1), new DbPageState(DbUserEditor.DatabaseUsers, 1));
  64. // VERIFY that following a modification a user command to save results in
  65. // an update user command
  66. Record record = editor.getStore().getRecord(users.getData().get(0));
  67. record.set("allowViewAll", true);
  68. editor.onUIAction(UIActions.save);
  69. UpdateUserPermissions cmd = service.getLastExecuted(UpdateUserPermissions.class);
  70. Assert.assertEquals("typhaine@sol.net", cmd.getModel().getEmail());
  71. Assert.assertEquals(true, cmd.getModel().getAllowViewAll());
  72. }
  73. @Test
  74. public void testSaveButtonDisabledAfterSave() {
  75. // Test Data
  76. UserResult users = DummyData.RRM_Users();
  77. SchemaDTO schema = DummyData.PEAR();
  78. // Collaborator: command service
  79. DispatcherStub service = new DispatcherStub();
  80. service.setResult(GetUsers.class, users);
  81. service.setResult(UpdateUserPermissions.class, new VoidResult());
  82. // Collaborator: View
  83. DbUserEditor.View view = createNiceMock(DbUserEditor.View.class);
  84. replay(view);
  85. // Class under test
  86. DbUserEditor editor = new DbUserEditor(new MockEventBus(), service, new MockStateManager(), view);
  87. editor.go(schema.getDatabaseById(1), new DbPageState(DbUserEditor.DatabaseUsers, 1));
  88. // VERIFY that following a successful save the save button is disabled
  89. Record record = editor.getStore().getRecord(users.getData().get(0));
  90. record.set("allowViewAll", true);
  91. reset(view);
  92. view.setActionEnabled(UIActions.save, false);
  93. replay(view);
  94. editor.onUIAction(UIActions.save);
  95. verify(view);
  96. }
  97. }