001 package org.hackystat.telemetry.analyzer.model; 002 003 import org.hackystat.utilities.time.period.Day; 004 import org.hackystat.utilities.time.period.Month; 005 import org.hackystat.utilities.time.period.TimePeriod; 006 import org.hackystat.utilities.time.period.Week; 007 008 import junit.framework.TestCase; 009 010 /** 011 * Test suite for <code>TelemetryDataPoint</code>. 012 * 013 * @author (Cedric) Qin Zhang 014 */ 015 public class TestTelemetryDataPoint extends TestCase { 016 017 /** 018 * Tests properties. 019 */ 020 public void testProperties() { 021 TimePeriod period = Day.getInstance(2002, 1, 1); 022 Number value = Integer.valueOf(12); 023 TelemetryDataPoint dataPoint = new TelemetryDataPoint(period, value); 024 assertEquals(period, dataPoint.getPeriod()); 025 assertEquals(value, dataPoint.getValue()); 026 } 027 028 /** 029 * Tests <code>equals</code> method. 030 */ 031 public void testEquals() { 032 Day day1 = Day.getInstance(2002, 1, 1); 033 Day day2 = Day.getInstance(2002, 1, 1); 034 Day day3 = Day.getInstance(2002, 2, 2); 035 Number value = Integer.valueOf(12); 036 assertEquals(new TelemetryDataPoint(day1, value), new TelemetryDataPoint(day2, value)); 037 assertEquals(new TelemetryDataPoint(day1, value).hashCode(), 038 new TelemetryDataPoint(day2, value).hashCode()); 039 assertEquals(new TelemetryDataPoint(day1, null), new TelemetryDataPoint(day2, null)); 040 assertEquals(new TelemetryDataPoint(day1, null).hashCode(), new TelemetryDataPoint(day2, null) 041 .hashCode()); 042 043 assertNotEquals(new TelemetryDataPoint(day1, value), new TelemetryDataPoint(day2, null)); 044 assertNotEquals(new TelemetryDataPoint(day1, null), new TelemetryDataPoint(day2, value)); 045 assertNotEquals(new TelemetryDataPoint(day1, value), new TelemetryDataPoint(day3, value)); 046 assertNotEquals(new TelemetryDataPoint(day3, value), new TelemetryDataPoint(day2, value)); 047 048 Week week1 = new Week(day1); 049 Week week2 = new Week(day2); 050 assertEquals(new TelemetryDataPoint(week1, value), new TelemetryDataPoint(week2, value)); 051 assertEquals(new TelemetryDataPoint(week1, value).hashCode(), new TelemetryDataPoint(week2, 052 value).hashCode()); 053 054 Month month1 = new Month(2002, 1); 055 Month month2 = new Month(2002, 1); 056 assertEquals(new TelemetryDataPoint(month1, value), new TelemetryDataPoint(month2, value)); 057 assertEquals(new TelemetryDataPoint(month1, value).hashCode(), new TelemetryDataPoint(month2, 058 value).hashCode()); 059 } 060 061 /** 062 * Asserts that two objects are not equals. 063 * 064 * @param o1 Object 1. 065 * @param o2 Object 2. 066 */ 067 private void assertNotEquals(Object o1, Object o2) { 068 assertFalse(o1.equals(o2)); 069 } 070 }