Package no.ugland.utransprod.gui.manuelt

Source Code of no.ugland.utransprod.gui.manuelt.EditDeviationViewTest

package no.ugland.utransprod.gui.manuelt;

import static junit.framework.Assert.assertEquals;
import static org.mockito.Mockito.when;

import java.util.Calendar;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTabbedPane;
import javax.swing.UIManager;

import no.ugland.utransprod.gui.JDialogAdapter;
import no.ugland.utransprod.gui.LFEnum;
import no.ugland.utransprod.gui.Login;
import no.ugland.utransprod.gui.LoginImpl;
import no.ugland.utransprod.gui.WindowInterface;
import no.ugland.utransprod.gui.edit.EditDeviationView;
import no.ugland.utransprod.gui.handlers.DeviationViewHandler;
import no.ugland.utransprod.gui.handlers.PreventiveActionViewHandler;
import no.ugland.utransprod.gui.model.DeviationModel;
import no.ugland.utransprod.model.ApplicationUser;
import no.ugland.utransprod.model.ConstructionType;
import no.ugland.utransprod.model.Customer;
import no.ugland.utransprod.model.Deviation;
import no.ugland.utransprod.model.JobFunction;
import no.ugland.utransprod.model.Order;
import no.ugland.utransprod.model.OrderLine;
import no.ugland.utransprod.model.PostShipment;
import no.ugland.utransprod.model.ProductArea;
import no.ugland.utransprod.model.UserRole;
import no.ugland.utransprod.model.UserType;
import no.ugland.utransprod.service.ApplicationUserManager;
import no.ugland.utransprod.service.ArticleTypeManager;
import no.ugland.utransprod.service.ConstructionTypeManager;
import no.ugland.utransprod.service.CustomerManager;
import no.ugland.utransprod.service.DeviationManager;
import no.ugland.utransprod.service.DeviationStatusManager;
import no.ugland.utransprod.service.JobFunctionManager;
import no.ugland.utransprod.service.ManagerRepository;
import no.ugland.utransprod.service.OrderManager;
import no.ugland.utransprod.service.PostShipmentManager;
import no.ugland.utransprod.service.PreventiveActionManager;
import no.ugland.utransprod.service.ProductAreaManager;
import no.ugland.utransprod.service.SupplierManager;
import no.ugland.utransprod.service.UserTypeManager;
import no.ugland.utransprod.service.enums.LazyLoadEnum;
import no.ugland.utransprod.service.enums.LazyLoadOrderEnum;
import no.ugland.utransprod.test.ManuellTest;
import no.ugland.utransprod.util.ModelUtil;
import no.ugland.utransprod.util.Util;

import org.fest.swing.edt.FailOnThreadViolationRepaintManager;
import org.fest.swing.edt.GuiActionRunner;
import org.fest.swing.edt.GuiQuery;
import org.fest.swing.finder.WindowFinder;
import org.fest.swing.fixture.DialogFixture;
import org.fest.swing.fixture.JOptionPaneFixture;
import org.fest.swing.fixture.JTabbedPaneFixture;
import org.hibernate.ObjectNotFoundException;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException;

import com.birosoft.liquid.LiquidLookAndFeel;
import com.toedter.calendar.JDateChooser;

/**
* @author atle.brekka
*/
@Category(ManuellTest.class)
public class EditDeviationViewTest {
  static {
    try {

      UIManager.setLookAndFeel(LFEnum.LNF_LIQUID.getClassName());
      JFrame.setDefaultLookAndFeelDecorated(true);
      LiquidLookAndFeel.setLiquidDecorations(true, "mac");

    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  private static DeviationManager deviationManager;

  private DialogFixture dialogFixture;

  private static Order order;
  private static OrderManager orderManager = null;

  private static ProductArea productArea;

  @Mock
  private ManagerRepository managerRepository;

  @BeforeClass
  public static void setUpOrder() throws Exception {
    FailOnThreadViolationRepaintManager.install();
    orderManager = (OrderManager) ModelUtil.getBean("orderManager");
    CustomerManager customerManager = (CustomerManager) ModelUtil
        .getBean("customerManager");
    ConstructionTypeManager constructionTypeManager = (ConstructionTypeManager) ModelUtil
        .getBean(ConstructionTypeManager.MANAGER_NAME);
    final ProductAreaManager productAreaManager = (ProductAreaManager) ModelUtil
        .getBean(ProductAreaManager.MANAGER_NAME);

    order = new Order();
    Set<OrderLine> orderLines = new HashSet<OrderLine>();
    OrderLine orderLine = new OrderLine();
    orderLine.setOrder(order);
    orderLine.setArticlePath("articlePath");
    orderLines.add(orderLine);
    order.setOrderLines(orderLines);
    order.setOrderNr("123456789");
    order.setDeliveryAddress("deliveryAddress");
    order.setPostalCode("1234");
    order.setPostOffice("postOffice");
    order.setOrderDate(Calendar.getInstance().getTime());
    Customer customer = customerManager.findByCustomerNr(1);
    order.setCustomer(customer);
    ConstructionType constructionType = constructionTypeManager
        .findByName("A1");
    order.setConstructionType(constructionType);
    productArea = productAreaManager.findByName("Garasje villa");
    order.setProductArea(productArea);
    orderManager.saveOrder(order);

  }

  /**
   * @see junit.framework.TestCase#setUp()
   */
  @Before
  public void setUp() throws Exception {
    MockitoAnnotations.initMocks(this);

    final ProductAreaManager productAreaManager = (ProductAreaManager) ModelUtil
        .getBean(ProductAreaManager.MANAGER_NAME);

    deviationManager = (DeviationManager) ModelUtil
        .getBean("deviationManager");
    final ApplicationUserManager applicationUserManager = (ApplicationUserManager) ModelUtil
        .getBean("applicationUserManager");
    ApplicationUser user;
    user = applicationUserManager.login("avviktransport", "avviktransport");
    applicationUserManager.lazyLoad(user, new LazyLoadEnum[][] { {
        LazyLoadEnum.USER_ROLES, LazyLoadEnum.NONE } });
    JobFunctionManager jobFunctionManager = (JobFunctionManager) ModelUtil
        .getBean("jobFunctionManager");
    if (user == null) {

      UserTypeManager userTypeManager = (UserTypeManager) ModelUtil
          .getBean("userTypeManager");
      JobFunction jobFunction = new JobFunction();
      jobFunction.setJobFunctionName("Transport");
      List<JobFunction> jobFunctions = jobFunctionManager
          .findByObject(jobFunction);
      jobFunction = jobFunctions.get(0);

      user = new ApplicationUser(null, "avviktransport",
          "avviktransport", "avviktransport", "avviktransport", null,
          "Nei", jobFunction, productArea, null);
      applicationUserManager.saveObject(user);

      UserType userType = new UserType();
      userType.setDescription("Avvik");
      List<UserType> userTypes = userTypeManager.findByObject(userType);
      userType = userTypes.get(0);

      Set<UserRole> userRoles = new HashSet<UserRole>();
      UserRole userRole = new UserRole(null, userType, user);
      userRoles.add(userRole);
      user.setUserRoles(userRoles);

      applicationUserManager.saveObject(user);
    }

    JobFunction jobFunction = user.getJobFunction();

    if (!jobFunction.getManager().equals(user)) {
      jobFunction.setManager(user);
      jobFunctionManager.saveObject(jobFunction);
    }

    Login login = new LoginImpl(user, user.getUserRoles().iterator().next()
        .getUserType());

    final PreventiveActionManager preventiveActionManager = (PreventiveActionManager) ModelUtil
        .getBean(PreventiveActionManager.MANAGER_NAME);
    final DeviationManager deviationManager = (DeviationManager) ModelUtil
        .getBean(DeviationManager.MANAGER_NAME);
    final OrderManager orderManager = (OrderManager) ModelUtil
        .getBean(OrderManager.MANAGER_NAME);
    final ArticleTypeManager articleTypeManager = (ArticleTypeManager) ModelUtil
        .getBean(ArticleTypeManager.MANAGER_NAME);
    final DeviationStatusManager deviationStatusManager = (DeviationStatusManager) ModelUtil
        .getBean(DeviationStatusManager.MANAGER_NAME);
    final SupplierManager supplierManager = (SupplierManager) ModelUtil
        .getBean(SupplierManager.MANAGER_NAME);

    when(managerRepository.getJobFunctionManager()).thenReturn(
        jobFunctionManager);
    when(managerRepository.getProductAreaManager()).thenReturn(
        productAreaManager);
    when(managerRepository.getDeviationStatusManager()).thenReturn(
        deviationStatusManager);
    when(managerRepository.getApplicationUserManager()).thenReturn(
        applicationUserManager);
    when(managerRepository.getOrderManager()).thenReturn(orderManager);
    when(managerRepository.getDeviationManager()).thenReturn(
        deviationManager);
    when(managerRepository.getArticleTypeManager()).thenReturn(
        articleTypeManager);
    when(managerRepository.getSupplierManager())
        .thenReturn(supplierManager);
    when(managerRepository.getPreventiveActionManager()).thenReturn(
        preventiveActionManager);

    final PreventiveActionViewHandler preventiveActionViewHandler = new PreventiveActionViewHandler(
        login, managerRepository);

    final DeviationViewHandler deviationViewHandler = new DeviationViewHandler(
        login, managerRepository, preventiveActionViewHandler, null,
        true, false, true, null, true);

    DeviationModel deviationModel = new DeviationModel(new Deviation(),
        false);
    final EditDeviationView editDeviationView = new EditDeviationView(
        false, deviationModel, deviationViewHandler, false, true);

    JDialog dialog = GuiActionRunner.execute(new GuiQuery<JDialog>() {
      protected JDialog executeInEDT() {
        JDialog dialog = new JDialog();
        WindowInterface window = new JDialogAdapter(dialog);
        dialog.add(editDeviationView.buildPanel(window));
        dialog.pack();
        return dialog;
      }
    });
    dialogFixture = new DialogFixture(dialog);
    dialogFixture.show();

  }

  /**
   * @see junit.framework.TestCase#tearDown()
   */
  @After
  public void tearDown() throws Exception {
    dialogFixture.cleanUp();
    PostShipmentManager postShipmentManager = (PostShipmentManager) ModelUtil
        .getBean("postShipmentManager");

    Deviation deviation = new Deviation();
    deviation.setCustomerName("test");
    List<Deviation> list = deviationManager.findByObject(deviation);
    if (list != null) {
      for (Deviation dev : list) {
        deviationManager.removeObject(dev);
      }
    }
    deviation = new Deviation();
    deviation.setUserName("admin admin");
    list = deviationManager.findByObject(deviation);
    orderManager.lazyLoadOrder(order,
        new LazyLoadOrderEnum[] { LazyLoadOrderEnum.POST_SHIPMENTS });
    Set<PostShipment> postShipments = order.getPostShipments();
    if (postShipments != null) {
      for (PostShipment postShipment : postShipments) {
        order.removePostShipment(postShipment);
        orderManager.saveOrder(order);
        deviation = postShipment.getDeviation();
        try {
          postShipmentManager.refreshObject(postShipment);
          postShipmentManager.removePostShipment(postShipment);
        } catch (HibernateObjectRetrievalFailureException e) {
        } catch (ObjectNotFoundException onfex) {

        }
        deviationManager.removeObject(deviation);
      }
    }
  }

  @AfterClass
  public static void tearDownOrder() {
    orderManager.removeOrder(order);
  }

  @Test
  public void testOpenWindow() throws Exception {
    dialogFixture.show();
    dialogFixture.requireVisible();
  }

  @Test
  public void testNew() throws Exception {
    Util.locateOnScreenCenter(dialogFixture.target);
    dialogFixture.textBox("TextFieldCustomerName").focus();
    dialogFixture.textBox("TextFieldCustomerName").enterText("test");
    dialogFixture.textBox("TextFieldOrderNr").enterText(order.getOrderNr());
    dialogFixture.radioButton("RadioButtonInternal").click();
    dialogFixture.comboBox("ComboBoxResponsible").selectItem(1);
    dialogFixture.comboBox("ComboBoxDeviationFunction").selectItem(1);
    dialogFixture.comboBox("ComboBoxFunctionCategory").selectItem(1);
    dialogFixture.comboBox("ComboBoxStatus").selectItem(1);

    dialogFixture.button("AddDeviationComment").click();
    JDialog commentDialog = (JDialog) dialogFixture.robot.finder()
        .findByName("EditCommentView");
    DialogFixture commentDialogFixture = new DialogFixture(
        dialogFixture.robot, commentDialog);
    commentDialogFixture.textBox("TextAreaComment").enterText("test");
    commentDialogFixture.button("ButtonCommentOk").click();

    dialogFixture.button("SaveDeviation").click();

    Deviation deviation = new Deviation();
    deviation.setCustomerName(order.getCustomer().getFullName());
    List<Deviation> list = deviationManager.findByObject(deviation);
    assertEquals(true, list.size() != 0);
  }

  @Test
  public void testAddComment() throws Exception {
    dialogFixture.button("AddDeviationComment").click();
    JDialog commentDialog = (JDialog) dialogFixture.robot.finder()
        .findByName("EditCommentView");
    DialogFixture commentDialogFixture = new DialogFixture(
        dialogFixture.robot, commentDialog);
    commentDialogFixture.textBox("TextAreaComment").enterText("test");
    commentDialogFixture.button("ButtonCommentOk").click();

  }


  @Test
  public void testCheckBoxPostShipmentDisabled() {
    dialogFixture.checkBox("CheckBoxPostShipment").requireDisabled();
    dialogFixture.button("ButtonRemveArticle").requireDisabled();
    dialogFixture.button("ButtonAddArticle").requireDisabled();
  }

  @Test
  public void testSetOrderNr() {
    dialogFixture.textBox("TextFieldOrderNr").enterText(order.getOrderNr());
    dialogFixture.textBox("TextFieldName").focus();
    dialogFixture.textBox("TextFieldCustomerName").requireText(
        order.getCustomer().getFullName());
    dialogFixture.checkBox("CheckBoxPostShipment").requireDisabled();
  }

  @Test
  public void testAddArticle() {
    dialogFixture.textBox("TextFieldOrderNr").enterText(order.getOrderNr());
    dialogFixture.textBox("TextFieldName").focus();
    dialogFixture.button("ButtonAddArticle").click();

    DialogFixture editArticleType = new DialogFixture(dialogFixture.robot,
        (JDialog) dialogFixture.robot.finder().findByName(
            "ArticleTypeView"));
    editArticleType.list("ListArticles").selectItem(0);
    editArticleType.button("ButtonOkArticle").click();

    JOptionPaneFixture optionPaneFixture = new JOptionPaneFixture(
        dialogFixture.robot, dialogFixture.robot.finder().findByType(
            JOptionPane.class));
    optionPaneFixture.textBox().enterText("1");
    optionPaneFixture.okButton().click();

    dialogFixture.checkBox("CheckBoxPostShipment").requireEnabled();
  }

  @Test
  public void testSetPostShipment() {
    dialogFixture.textBox("TextFieldOrderNr").enterText(order.getOrderNr());
    dialogFixture.textBox("TextFieldName").focus();
    dialogFixture.comboBox("ComboBoxDeviationFunction").selectItem(1);
    dialogFixture.comboBox("ComboBoxFunctionCategory").selectItem(1);
    dialogFixture.comboBox("ComboBoxStatus").selectItem(1);
    dialogFixture.comboBox("ComboBoxResponsible").selectItem(1);

    dialogFixture.button("AddDeviationComment").click();
    JDialog commentDialog = (JDialog) dialogFixture.robot.finder()
        .findByName("EditCommentView");
    DialogFixture commentDialogFixture = new DialogFixture(
        dialogFixture.robot, commentDialog);
    commentDialogFixture.textBox("TextAreaComment").enterText("test");
    commentDialogFixture.button("ButtonCommentOk").click();

    dialogFixture.button("ButtonAddArticle").click();

    DialogFixture editArticleType = new DialogFixture(dialogFixture.robot,
        (JDialog) dialogFixture.robot.finder().findByName(
            "ArticleTypeView"));
    editArticleType.list("ListArticles").selectItem(0);
    editArticleType.button("ButtonOkArticle").click();

    JOptionPaneFixture optionPaneFixture = new JOptionPaneFixture(
        dialogFixture.robot, dialogFixture.robot.finder().findByType(
            JOptionPane.class));
    optionPaneFixture.textBox().enterText("1");
    optionPaneFixture.okButton().click();

    dialogFixture.checkBox("CheckBoxPostShipment").click();
    dialogFixture.radioButton("RadioButtonInternal").click();
    dialogFixture.button("SaveDeviation").click();

    Deviation deviation = new Deviation();
    deviation.setCustomerName(order.getCustomer().getFullName());
    deviation.setCustomerNr(order.getCustomer().getCustomerNr());
    deviation.setUserName("avviktransport avviktransport");

    List<Deviation> list = deviationManager.findByObject(deviation);
    assertEquals(true, list.size() != 0);
  }

  @Test
  public void testManagerCanSetEndDate() {

    JDateChooser dateChooser = (JDateChooser) dialogFixture.robot.finder()
        .findByName("DateChooserProcedureCheck");
    assertEquals(false, dateChooser.isEnabled());

    dialogFixture.comboBox("ComboBoxDeviationFunction").selectItem(
        "Transport");

    assertEquals(true, dateChooser.isEnabled());

  }

  @Test
  public void testAddCost() {
    dialogFixture.button("ButtonAddCost").click();

    DialogFixture costDialog = new DialogFixture(dialogFixture.robot,
        (JDialog) dialogFixture.robot.finder().findByName(
            "OrderCostView"));
    costDialog.comboBox("ComboBoxCostType").selectItem(0);
    costDialog.textBox("TextFieldAmount").enterText("100");
    costDialog.button("OkOrderCost").click();
  }

  @Test
  public void testSetPreventiveAction() {

    dialogFixture.comboBox("ComboBoxDeviationFunction").selectItem(1);
    dialogFixture.comboBox("ComboBoxFunctionCategory").selectItem(1);
    dialogFixture.button("ButtonAddPreventiveAction").click();
    DialogFixture addPreventiveAction = WindowFinder.findDialog(
        "EditPreventiveActionView").using(dialogFixture.robot);
//    addPreventiveAction.textBox("TextFieldProjectNr").enterText("9999");
    addPreventiveAction.textBox("TextFieldName").enterText("TEST");
    addPreventiveAction.textBox("TextFieldManager").click();
    addPreventiveAction.button("SavePreventiveAction").click();
    addPreventiveAction.button("EditCancelPreventiveAction").click();
    dialogFixture.comboBox("ComboBoxPreventiveAction").selectItem(1);
  }

  @Test
  public void testSetAssembly() {
    dialogFixture.checkBox("CheckBoxDoAssembly").check();
  }

  @Test
  public void testNoOtherDeviation() {
    dialogFixture.show();

    JTabbedPaneFixture tabbedPane = new JTabbedPaneFixture(
        dialogFixture.robot, dialogFixture.robot.finder().findByType(
            JTabbedPane.class));
    tabbedPane = tabbedPane.selectTab(1);

    assertEquals(0, dialogFixture.table("TableDeviation").target
        .getRowCount());
  }

  @Test
  public void testShowRegistrationDate() {
    dialogFixture.label("LabelRegistrationDate").requireVisible();
  }

  @Test
  public void testShowClosedDate() {
    dialogFixture.textBox("TextFieldDateClosed").requireVisible();
    dialogFixture.textBox("TextFieldDateClosed").requireDisabled();
  }
}
TOP

Related Classes of no.ugland.utransprod.gui.manuelt.EditDeviationViewTest

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.