Package honeycrm.server.test.small

Source Code of honeycrm.server.test.small.DetailPresenterTest

package honeycrm.server.test.small;

import static org.easymock.EasyMock.anyObject;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.getCurrentArguments;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import honeycrm.client.dto.Dto;
import honeycrm.client.mvp.events.CreateEvent;
import honeycrm.client.mvp.events.OpenEvent;
import honeycrm.client.mvp.presenters.DetailPresenter;
import honeycrm.client.mvp.presenters.DetailPresenter.Display;
import honeycrm.client.mvp.presenters.RelationshipsPresenter;
import honeycrm.client.services.CreateServiceAsync;
import honeycrm.client.services.ReadServiceAsync;
import honeycrm.client.services.UpdateServiceAsync;

import java.util.HashMap;

import junit.framework.TestCase;

import org.easymock.IAnswer;

import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.user.client.rpc.AsyncCallback;

public class DetailPresenterTest extends TestCase {
  private SimpleEventBus eventBus;
  private String module;
  private CreateServiceAsync createService;
  private ReadServiceAsync readService;
  private UpdateServiceAsync updateService;
  private Display view;
  private DetailPresenter presenter;
  private honeycrm.client.mvp.presenters.RelationshipsPresenter.Display relView;
  private HasClickHandlers saveBtn;
  private HasClickHandlers cancelBtn;
  private HasClickHandlers editBtn;
  private HasClickHandlers createBtn;

  @Override
  protected void setUp() throws Exception {
    this.eventBus = new SimpleEventBus();
    this.module = "Contact";
    this.createService = createNiceMock(CreateServiceAsync.class);
    this.readService = createNiceMock(ReadServiceAsync.class);
    this.updateService = createNiceMock(UpdateServiceAsync.class);
    this.view = createNiceMock(DetailPresenter.Display.class);
    this.relView = createNiceMock(RelationshipsPresenter.Display.class);
    this.saveBtn = createNiceMock(HasClickHandlers.class);
    this.cancelBtn = createNiceMock(HasClickHandlers.class);
    this.editBtn = createNiceMock(HasClickHandlers.class);
    this.createBtn = createNiceMock(HasClickHandlers.class);
   
    expect(view.getRelationshipsView()).andReturn(relView);
    expect(view.getSaveBtn()).andReturn(saveBtn);
    expect(view.getCancelBtn()).andReturn(cancelBtn);
    expect(view.getEditBtn()).andReturn(editBtn);
    expect(view.getCreateBtn()).andReturn(createBtn);
   
    view.setPresenter((DetailPresenter) anyObject());
    expectLastCall();
   
    createService.create(isA(Dto.class), isA(AsyncCallback.class));
    expectLastCall().andAnswer(new IAnswer<Object>() {
      @Override
      public Object answer() throws Throwable {
        final Object[] arguments = getCurrentArguments();
        AsyncCallback callback = (AsyncCallback) arguments[arguments.length - 1];
        callback.onSuccess(1L);
        return null;
      }
    });   
  }
 
  public void testCreate() throws InterruptedException {
    final Dto d = new Dto(module);
    d.set("name", "Test Name");
    d.set("email", "foo@example.com");
   
    expect(view.getData()).andReturn(d);

    replay(view);
    replay(createService);

    this.presenter = new DetailPresenter(eventBus, module, readService, updateService, createService, view);
    presenter.onSave();
  }
 
  public void testUpdate() {
    final Dto d = new Dto(module);
    d.set("name", "Test Name");
    d.set("email", "foo@example.com");
    d.setId(10L);
   
    expect(view.getData()).andReturn(d);

    updateService.update(isA(Dto.class), isA(AsyncCallback.class));
    expectLastCall().andAnswer(new IAnswer<Object>() {
      @Override
      public Object answer() throws Throwable {
        final Object[] arguments = getCurrentArguments();
        AsyncCallback<Void> callback = (AsyncCallback<Void>) arguments[arguments.length - 1];
        callback.onSuccess(null);
        return null;
      }
    });
   
    replay(view);
    replay(updateService);
   
    presenter = new DetailPresenter(eventBus, module, readService, updateService, createService, view);
    presenter.onSave();
  }
   
  public void testOpenEvent() {
    replay(view);
    presenter = new DetailPresenter(eventBus, module, readService, updateService, createService, view);
   
    final Dto d = new Dto("Contact");
    d.setId(23L);
    eventBus.fireEvent(new OpenEvent(d));
  }
 
  public void testCreateEventForNonExistingModule() {
    replay(view);
    presenter = new DetailPresenter(eventBus, module, readService, updateService, createService, view);
    eventBus.fireEvent(new CreateEvent(module + module + module));
  }
 
  public void testCreateEventForExistingModule() {
    replay(view);
    presenter = new DetailPresenter(eventBus, module, readService, updateService, createService, view);
    eventBus.fireEvent(new CreateEvent(module));
  }
 
  public void testCreateEventForExistingModuleWithPrefilling() {
    replay(view);
    presenter = new DetailPresenter(eventBus, module, readService, updateService, createService, view);
    final HashMap<String, Object> prefilledFields = new HashMap<String, Object>();
    prefilledFields.put("name", "Vicky");
    eventBus.fireEvent(new CreateEvent(module, prefilledFields));
  }
}
TOP

Related Classes of honeycrm.server.test.small.DetailPresenterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.