Package org.strecks.web.form

Source Code of org.strecks.web.form.TestProjectFormBinding

/*
* Copyright 2005-2006 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/

package org.strecks.web.form;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.strecks.form.controller.DelegatingForm;
import org.strecks.form.controller.FormTestUtils;
import org.strecks.web.form.impl.NewProjectForm;
import org.strecks.web.form.impl.Project;
import org.strecks.web.form.impl.ProjectType;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;


/**
* @author Phil Zoio
*/
public class TestProjectFormBinding
{

  private NewProjectForm form;
  private DelegatingForm delegator;

  private static final ProjectType projectType1 = new ProjectType(1, "Project type 1");

  private static final ProjectType projectType2 = new ProjectType(1, "Project type 2");

  @BeforeMethod
  public void testProjectForm()
  {

    form = new NewProjectForm();

    //set up form
    Map<Integer, ProjectType> availableProjectTypes = new HashMap<Integer, ProjectType>();
    availableProjectTypes.put(1, projectType1);
    availableProjectTypes.put(1, projectType2);
    form.setAvailableProjectTypes(availableProjectTypes);

    Project project = new Project();
    form.setProject(project);
   
    delegator = FormTestUtils.getDelegatingForm(form);
  }

  @Test
  public void testInwardBinding()
  {

    Project project = new Project();
    form.setProject(project);

    // now set properties
    // form.setSelectedProjectStatus("1");
    form.setSelectedProjectType("1");
    form.setProjectName("projectName");
    form.setReadyDate("19 July 2005");

    delegator.bindInwards(null);

    assert project.getProjectType() != null;
    assert project.getReadyDate() != null;
    assert project.getProjectName() != null;

  }

  @Test
  public void testEmptyBinding()
  {

    Project project = new Project();
    form.setProject(project);

    // now set properties
    form.setSelectedProjectType("");
    form.setProjectName("");
    form.setProjectDescription("");
    form.setReadyDate("");

    delegator.bindInwards(null);

    assert project.getProjectType() == null;
    assert project.getReadyDate() == null;
    assert project.getProjectName() == null;

    // this uses SafeBeanUtilsConverter.class, so results in null
    assert project.getProjectDescription() == null;

  }

  /**
   * Null inward binding with availableProjectTypes not set to null
   */
  @Test
  public void testNullInwardBinding1()
  {

    Project project = new Project();
    form.setProject(project);

    delegator.bindInwards(null);

    assert project.getProjectType() == null;
    assert project.getReadyDate() == null;
    assert project.getProjectName() == null;

  }

  /**
   * Null inward binding with availableProjectTypes set to null
   */
  @Test
  public void testNullInwardBinding2()
  {

    Project project = new Project();
    form.setProject(project);

    form.setAvailableProjectTypes(null);
    delegator.bindInwards(null);

    assert project.getProjectType() == null;
    assert project.getReadyDate() == null;
    assert project.getProjectName() == null;

  }

  @Test
  public void testOutwardBinding1()
  {

    Project project = new Project();
    form.setProject(project);

    project.setProjectType(new ProjectType());
    project.setProjectName("my project");
    project.setReadyDate(new Date());

    delegator.bindOutwards(null);

    // because the ProjectType has no ID set, this will be null. A log message should be set
    assert form.getSelectedProjectType() == null;

    assert form.getProjectName() != null;
    assert form.getReadyDate() != null;

  }

  @Test
  public void testOutwardBinding2()
  {

    Project project = new Project();
    form.setProject(project);

    project.setProjectType(projectType1);
    project.setProjectName("my project");
    project.setReadyDate(new Date());

    delegator.bindOutwards(null);

    assert form.getSelectedProjectType() != null;
    assert form.getProjectName() != null;
    assert form.getReadyDate() != null;

  }

  @Test
  public void testNullOutwardBinding()
  {

    Project project = new Project();
    form.setProject(project);

    delegator.bindOutwards(null);

    assert form.getSelectedProjectType() == null;
    assert form.getProjectName() == null;
    assert form.getReadyDate() == null;

  }

  @Test
  public void testOverwriteInwardBinding()
  {
   
    Project project = new Project();
    form.setProject(project);
    project.setProjectName("my project");

    form.setProjectName(null);

    delegator.bindInwards(null);

    // check that these have been set to null
    assert project.getProjectName() == null;

  }

  @Test
  public void testOverwriteOutwardBinding()
  {
    Project project = new Project();
    form.setProject(project);

    form.setProjectName("project name");

    project.setProjectType(new ProjectType());
    project.setProjectName(null);

    delegator.bindOutwards(null);

    // check that these have been set to null
    assert form.getProjectName() == null;

  }

}
TOP

Related Classes of org.strecks.web.form.TestProjectFormBinding

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.