⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testrundatabo.java

📁 A Java web application, based on Struts and Hibernate, that serves as an online running log. Users m
💻 JAVA
字号:
package net.sf.irunninglog.businessobject;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import net.sf.irunninglog.canonical.Route;
import net.sf.irunninglog.canonical.RunData;
import net.sf.irunninglog.util.ConstantValues;
import net.sf.irunninglog.util.DTO;

public class TestRunDataBO extends HasGeneratedIdBOTestCase {

    protected static final String V_DATE_1 = "3/1/05";
    protected static final String V_DATE_2 = "03/01/2005";
    protected static final String I_DATE_1 = "03/01";
    protected static final String I_DATE_2 = "03";
    protected static final String I_DATE_3 = "03/01/";
    protected static final String V_TIME_1 = "1:15:24.867";
    protected static final String V_TIME_2 = "1:15:24";
    protected static final String V_TIME_3 = "15:24";
    protected static final String V_TIME_4 = "24";
    protected static final String I_TIME_1 = "24:00:00";
    protected static final String I_TIME_2 = "-4:00:00";
    protected static final String I_TIME_3 = "24:00:00.as";
    protected static final String I_TIME_4 = "24:00:00,123";
    private static final String V_DISTANCE_1 = "0.0";
    private static final String V_DISTANCE_2 = "25.30";
    private static final String V_DISTANCE_3 = "99.99";
    private static final String I_DISTANCE_1 = "-1.0";
    private static final String I_DISTANCE_2 = "100.0";
    private static final String I_DISTANCE_3 = "1,000.0";
    private static final String V_UNITS_1 = "Miles";
    private static final String V_UNITS_2 = "Kilometers";
    private static final String I_UNITS_1 = "miles";
    private static final String V_COMMENTS_1 = "1111111111222222222233333"
        + "1111111111222222222233333"
        + "1111111111222222222233333"
        + "1111111111222222222233333"
        + "1111111111222222222233333"
        + "1111111111222222222233333"
        + "1111111111222222222233333"
        + "1111111111222222222233333"
        + "1111111111222222222233333"
        + "111111111122222222223333333333";
    private static final String V_COMMENTS_2 = "abcde";
    private static final String I_COMMENTS_1 = V_COMMENTS_1 + "4";

    private Map extraValidValues;

    public TestRunDataBO(String name) {
        super(name);
    }

    public void setUp() {
        super.setUp();

        extraValidValues = new HashMap();
    }

    public void testDefaultValues() {
        super.testDefaultValues();

        executeDefaultValuesTests(RunData.FIELD_DATE, null);
        executeDefaultValuesTests(RunData.FIELD_TIME, null);
        executeDefaultValuesTests(RunData.FIELD_DISTANCE, null);
        executeDefaultValuesTests(RunData.FIELD_UNITS, null);
        executeDefaultValuesTests(RunData.FIELD_PACE, null);
        executeDefaultValuesTests(RunData.FIELD_ROUTE, null);
        executeDefaultValuesTests(RunData.FIELD_RUN_TYPE, null);
        executeDefaultValuesTests(RunData.FIELD_SHOES, null);
        executeDefaultValuesTests(RunData.FIELD_COMMENTS, null);
    }

    public void testFields() {
        super.testFields();

        executeDateFieldTests(RunData.FIELD_DATE);
        executeLongFieldTests(RunData.FIELD_TIME);
        executeDecimalFieldTests(RunData.FIELD_DISTANCE);
        executeStringFieldTests(RunData.FIELD_UNITS);
        executeStringFieldTests(RunData.FIELD_ROUTE);
        executeStringFieldTests(RunData.FIELD_RUN_TYPE);
        executeStringFieldTests(RunData.FIELD_SHOES);
        executeStringFieldTests(RunData.FIELD_COMMENTS);

        RunDataBO runData = (RunDataBO) bo;

        runData.setTime(null);
        runData.setDistance(null);
        assertNull(runData.getPace());

        runData.setTime(null);
        runData.setDistance(new BigDecimal(10));
        assertNull(runData.getPace());

        runData.setTime(new Long(3600000));
        runData.setDistance(null);
        assertNull(runData.getPace());

        runData.setTime(new Long(3600000));
        runData.setDistance(new BigDecimal(10));
        assertEquals("06:00", runData.getPace());

        runData.setTime(new Long(1234567));
        runData.setDistance(new BigDecimal(3.5));
        assertEquals("05:52.733", runData.getPace());

        runData.setTime(new Long(0));
        runData.setDistance(new BigDecimal(10));
        assertEquals("00:00", runData.getPace());

        runData.setTime(new Long (200000));
        runData.setDistance(new BigDecimal(0.00));
        assertEquals(null, runData.getPace());

        runData.setTime(new Long (0));
        runData.setDistance(new BigDecimal(0.00));
        assertEquals(null, runData.getPace());
    }

    public void testGetValues() {
        super.testGetValues();
    }

    public void testGetValuesInternal() {
        super.testGetValuesInternal();
    }

    public void testPrimaryKey() {
        super.testPrimaryKey();
    }

    public void testSetValues() {
        super.testSetValues();

        executeSetValuesTests(RunData.FIELD_DATE,
                              new String [] {V_DATE_1, V_DATE_2},
                              new String [] {null, ConstantValues.STRING_BLANK, I_DATE_1, I_DATE_2, I_DATE_3});

        executeSetValuesTests(RunData.FIELD_TIME,
                              new String [] {null, ConstantValues.STRING_BLANK, V_TIME_1, V_TIME_2, V_TIME_3, V_TIME_4},
                              new String [] {I_TIME_1, I_TIME_2, I_TIME_3, I_TIME_4});

        executeSetValuesTests(RunData.FIELD_ROUTE,
                              new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2},
                              new String [] {I_ID_1});

        executeSetValuesTests(RunData.FIELD_RUN_TYPE,
                              new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2},
                              new String [] {I_ID_1});

        executeSetValuesTests(RunData.FIELD_SHOES,
                              new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2},
                              new String [] {I_ID_1});

        executeSetValuesTests(Route.FIELD_COMMENTS,
                              new String [] {null, ConstantValues.STRING_BLANK, V_COMMENTS_1, V_COMMENTS_2},
                              new String [] {I_COMMENTS_1});
    }

    public void testSetDistanceAndUnitsValues() {
        // No units - can't enter distance
        executeSetValuesTests(RunData.FIELD_DISTANCE,
                              new String [] {null, ConstantValues.STRING_BLANK},
                              new String [] {I_DISTANCE_1, I_DISTANCE_2, I_DISTANCE_3, V_DISTANCE_1, V_DISTANCE_2, V_DISTANCE_3});

        // No distance - can't enter units
        executeSetValuesTests(RunData.FIELD_UNITS,
                              new String [] {null, ConstantValues.STRING_BLANK},
                              new String [] {I_UNITS_1, STRING_FOO, V_UNITS_1, V_UNITS_2});


        extraValidValues.put(RunData.FIELD_UNITS, V_UNITS_1);
        extraValidValues.put(RunData.FIELD_DISTANCE, V_DISTANCE_1);

        // Valid units - test distance normally
        executeSetValuesTests(RunData.FIELD_DISTANCE,
                new String [] {V_DISTANCE_1, V_DISTANCE_2, V_DISTANCE_3},
                new String [] {null, ConstantValues.STRING_BLANK,I_DISTANCE_1, I_DISTANCE_2, I_DISTANCE_3});

        // Valid distance - test units normally
        executeSetValuesTests(RunData.FIELD_UNITS,
                new String [] {V_UNITS_2, V_UNITS_1},
                new String [] {null, ConstantValues.STRING_BLANK, I_UNITS_1, STRING_FOO});
    }

    public void testSetValuesInternal() {
        super.testSetValuesInternal();

        executeSetValuesInternalTests(RunData.FIELD_DATE,
                                      Date.class,
                                      new String [] {null, ConstantValues.STRING_BLANK, V_DATE_1, V_DATE_2},
                                      new String [] {I_DATE_1, I_DATE_2, I_DATE_3});

        executeSetValuesInternalTests(RunData.FIELD_TIME,
                                      Long.class,
                                      new String [] {null, ConstantValues.STRING_BLANK, V_TIME_1, V_TIME_2, V_TIME_3, V_TIME_4},
                                      new String [] {I_TIME_1, I_TIME_2, I_TIME_3, I_TIME_4});

        executeSetValuesInternalTests(RunData.FIELD_DISTANCE,
                                      BigDecimal.class,
                                      new String [] {I_DISTANCE_1, I_DISTANCE_2, null, ConstantValues.STRING_BLANK, V_DISTANCE_1, V_DISTANCE_2, V_DISTANCE_3},
                                      new String [] {I_DISTANCE_3});

        executeSetValuesInternalTests(RunData.FIELD_UNITS,
                                      String.class,
                                      new String [] {null, ConstantValues.STRING_BLANK, I_UNITS_1, STRING_FOO, V_UNITS_2, V_UNITS_1},
                                      new String [] {});

        executeSetValuesInternalTests(RunData.FIELD_ROUTE,
                                      String.class,
                                      new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2, I_ID_1},
                                      new String [] {});

        executeSetValuesInternalTests(RunData.FIELD_RUN_TYPE,
                                      String.class,
                                      new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2, I_ID_1},
                                      new String [] {});

        executeSetValuesInternalTests(RunData.FIELD_SHOES,
                                      String.class,
                                      new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2, I_ID_1},
                                      new String [] {});

        executeSetValuesInternalTests(Route.FIELD_COMMENTS,
                                      String.class,
                                      new String [] {null, ConstantValues.STRING_BLANK, V_COMMENTS_1, V_COMMENTS_2, I_COMMENTS_1},
                                      new String [] {});
    }

    public void testValidateValues() {
        super.testValidateValues();

        executeValidateValuesTests(RunData.FIELD_DATE,
                                   new String [] {V_DATE_1, V_DATE_2},
                                   new String [] {null, ConstantValues.STRING_BLANK, I_DATE_1, I_DATE_2, I_DATE_3});

        executeValidateValuesTests(RunData.FIELD_TIME,
                              new String [] {null, ConstantValues.STRING_BLANK, V_TIME_1, V_TIME_2, V_TIME_3, V_TIME_4},
                              new String [] {I_TIME_1, I_TIME_2, I_TIME_3, I_TIME_4});

        executeValidateValuesTests(RunData.FIELD_ROUTE,
                              new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2},
                              new String [] {I_ID_1});

        executeValidateValuesTests(RunData.FIELD_RUN_TYPE,
                              new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2},
                              new String [] {I_ID_1});

        executeValidateValuesTests(RunData.FIELD_SHOES,
                              new String [] {null, ConstantValues.STRING_BLANK, V_ID_1, V_ID_2},
                              new String [] {I_ID_1});

        executeValidateValuesTests(Route.FIELD_COMMENTS,
                              new String [] {null, ConstantValues.STRING_BLANK, V_COMMENTS_1, V_COMMENTS_2},
                              new String [] {I_COMMENTS_1});

        // No units - can't enter distance
        executeValidateValuesTests(RunData.FIELD_DISTANCE,
                              new String [] {null, ConstantValues.STRING_BLANK},
                              new String [] {I_DISTANCE_1, I_DISTANCE_2, I_DISTANCE_3, V_DISTANCE_1, V_DISTANCE_2, V_DISTANCE_3});

        // No distance - can't enter units
        executeValidateValuesTests(RunData.FIELD_UNITS,
                              new String [] {null, ConstantValues.STRING_BLANK},
                              new String [] {I_UNITS_1, STRING_FOO, V_UNITS_1, V_UNITS_2});


        extraValidValues.put(RunData.FIELD_UNITS, V_UNITS_1);
        extraValidValues.put(RunData.FIELD_DISTANCE, V_DISTANCE_1);

        // Valid units - test distance normally
        executeValidateValuesTests(RunData.FIELD_DISTANCE,
                new String [] {V_DISTANCE_1, V_DISTANCE_2, V_DISTANCE_3},
                new String [] {null, ConstantValues.STRING_BLANK,I_DISTANCE_1, I_DISTANCE_2, I_DISTANCE_3});

        // Valid distance - test units normally
        executeValidateValuesTests(RunData.FIELD_UNITS,
                new String [] {V_UNITS_2, V_UNITS_1},
                new String [] {null, ConstantValues.STRING_BLANK, I_UNITS_1, STRING_FOO});
    }

    protected String getBOType() {
        return RunData.CANONICAL_ID;
    }

    protected String getDTOCanonicalId() {
        return RunData.CANONICAL_ID;
    }

    protected DTO getValidDTO() {
        DTO values = new DTO(RunData.CANONICAL_ID);

        values.setValue(RunData.FIELD_RUNNER_ID, V_RUNNER_ID_1);
        values.setValue(RunData.FIELD_ID, STRING_FOO);
        values.setValue(RunData.FIELD_DATE, V_DATE_1);

        for (Iterator i = extraValidValues.keySet().iterator(); i.hasNext();) {
            String key = (String) i.next();
            values.setValue(key, (String) extraValidValues.get(key));
        }

        return values;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -