001 package org.hackystat.telemetry.analyzer.model; 002 003 import java.util.Collection; 004 005 import junit.framework.TestCase; 006 007 /** 008 * Test suite for <code>TelemetryStreamCollection</code>. 009 * 010 * @author (Cedric) Qin Zhang 011 */ 012 public class TestTelemetryStreamCollection extends TestCase { 013 014 /** 015 * Test case. 016 * 017 * @throws Exception If test fails. 018 */ 019 public void testAll() throws Exception { 020 TelemetryStream stream0 = new TelemetryStream(null); 021 TelemetryStream stream0b = new TelemetryStream(null); 022 TelemetryStream stream1 = new TelemetryStream("stream1"); 023 TelemetryStream stream1b = new TelemetryStream("stream1"); 024 TelemetryStream stream2 = new TelemetryStream("stream2"); 025 026 TelemetryStreamCollection streams = new TelemetryStreamCollection("Test", null, null); 027 assertEquals("Test", streams.getName()); 028 assertNull(streams.getProject()); 029 assertNull(streams.getInterval()); 030 assertEquals(0, streams.getTelemetryStreams().size()); 031 032 streams.add(stream0); 033 streams.add(stream1); 034 assertEquals(2, streams.getTelemetryStreams().size()); 035 try { 036 streams.add(stream0b); 037 fail("Should not allow add stream with same tag."); 038 } 039 catch (TelemetryDataModelException ex) { //NOPMD 040 // expected. 041 } 042 assertEquals(2, streams.getTelemetryStreams().size()); 043 try { 044 streams.add(stream1b); 045 fail("Should not allow add stream with same tag."); 046 } 047 catch (TelemetryDataModelException ex) { //NOPMD 048 // expected. 049 } 050 assertEquals(2, streams.getTelemetryStreams().size()); 051 streams.add(stream2); 052 053 assertEquals(3, streams.getTelemetryStreams().size()); 054 assertSame(stream0, streams.get(null)); 055 assertSame(stream1, streams.get("stream1")); 056 assertSame(stream2, streams.get("stream2")); 057 } 058 059 /** 060 * Asserts equality for two telemetry stream collection objects, except their names. 061 * 062 * @param streamCollection1 Telemetry stream collection 1. 063 * @param streamCollection2 Telemetry stream collection 2. 064 * 065 * @throws Exception If the two stream collections are not the same. 066 */ 067 public static void assertEqualsIgnoreName(TelemetryStreamCollection streamCollection1, 068 TelemetryStreamCollection streamCollection2) throws Exception { 069 //assertEquals(streamCollection1.getName(), streamCollection2.getName()); 070 assertEquals(streamCollection1.getProject(), streamCollection2.getProject()); 071 assertEquals(streamCollection1.getInterval(), streamCollection2.getInterval()); 072 073 Collection<TelemetryStream> streams1 = streamCollection1.getTelemetryStreams(); 074 assertEquals(streams1.size(), streamCollection2.getTelemetryStreams().size()); 075 076 for (TelemetryStream streamFrom1 : streams1) { 077 Object tag = streamFrom1.getTag(); 078 TelemetryStream streamFrom2 = streamCollection2.get(tag); 079 if (streamFrom2 == null) { 080 throw new Exception("Unable to find TelemetryStream '" + streamFrom1.getTag() 081 + "' from TelemetryStreamCollection '" + streamCollection2.getName() + "'."); 082 } 083 TestTelemetryStream.assertEquals(streamFrom1, streamFrom2); 084 } 085 } 086 }