package test.net.surveyos.sourceforge.gpx2; import static org.junit.Assert.*; import java.util.LinkedList; import java.util.List; import org.geotools.gpx2.gpxentities.BasicTrack; import org.geotools.gpx2.gpxentities.BasicTrackSegment; import org.geotools.gpx2.gpxentities.BasicWaypoint; import org.geotools.gpx2.gpxentities.SimpleWaypoint; import org.geotools.gpx2.gpxentities.TrackSegment; import org.junit.Test; public class BasicTrackTest { @Test public void testBasicTrackFromList() { TrackSegment segment = this.getBasicTrackSegmentForTest(1); LinkedList<TrackSegment> segments = new LinkedList<TrackSegment>(); segments.add(segment); BasicTrack testSubject = new BasicTrack(segments); List<TrackSegment> returnedSegments = testSubject .getTrackSegments(); TrackSegment firstSegment = returnedSegments.get(0); if(segment.equals(firstSegment) != true) { fail("The first track segment returned from the BasicTrack" + " did not match the track segment used to create the" + "BasicTrack object."); } } @Test public void testBasicTrackFromListAndString() { TrackSegment segment = this.getBasicTrackSegmentForTest(1); LinkedList<TrackSegment> segments = new LinkedList<TrackSegment>(); segments.add(segment); BasicTrack testSubject = new BasicTrack(segments, "Test Track"); List<TrackSegment> returnedSegments = testSubject .getTrackSegments(); TrackSegment firstSegment = returnedSegments.get(0); if(segment.equals(firstSegment) != true) { fail("The first track segment returned from the BasicTrack" + " did not match the track segment used to create the" + "BasicTrack object."); } String name = testSubject.getName(); if(name.equals("Test Track") != true) { fail("The name obtained from the BasicTrack did not match the" + " name that the BasicTrack was created with."); } } // Tests both the getName and setName methods. @Test public void testGetAndSetName() { TrackSegment segment = this.getBasicTrackSegmentForTest(1); LinkedList<TrackSegment> segments = new LinkedList<TrackSegment>(); segments.add(segment); BasicTrack testSubject = new BasicTrack(segments); testSubject.setName("Test Track"); String name = testSubject.getName(); if(name.equals("Test Track") != true) { fail("The name obtained from the BasicTrack did not match the" + " name that was set."); } } @Test public void testHasName() { TrackSegment segment = this.getBasicTrackSegmentForTest(1); LinkedList<TrackSegment> segments = new LinkedList<TrackSegment>(); segments.add(segment); BasicTrack testSubject = new BasicTrack(segments); testSubject.setName("Test Track"); if(testSubject.hasName() != true) { fail("The hasName method did not return true after the name" + " had been set."); } } @Test public void testGetNumberOfSegments() { TrackSegment segment1 = this.getBasicTrackSegmentForTest(1); TrackSegment segment2 = this.getBasicTrackSegmentForTest(2); LinkedList<TrackSegment> segments = new LinkedList<TrackSegment>(); segments.add(segment1); segments.add(segment2); BasicTrack testSubject = new BasicTrack(segments, "Test Track"); int numberOfSegments = testSubject.getNumberOfSegments(); if(numberOfSegments != 2) { fail("The correct number of segments was not returned."); } } @Test public void testGetTrackSegments() { TrackSegment segment1 = this.getBasicTrackSegmentForTest(1); TrackSegment segment2 = this.getBasicTrackSegmentForTest(2); LinkedList<TrackSegment> segments = new LinkedList<TrackSegment>(); segments.add(segment1); segments.add(segment2); BasicTrack testSubject = new BasicTrack(segments, "Test Track"); List<TrackSegment> returnedSegments = testSubject.getTrackSegments(); TrackSegment returnedSegment1 = returnedSegments.get(0); TrackSegment returnedSegment2 = returnedSegments.get(1); if(returnedSegment1.equals(segment1) != true) { fail("The first segment did not match."); } if(returnedSegment2.equals(segment2) != true) { fail("The second segment did not match."); } } @Test public void testAddTrackSegment() { TrackSegment segment1 = this.getBasicTrackSegmentForTest(1); TrackSegment segment2 = this.getBasicTrackSegmentForTest(2); LinkedList<TrackSegment> segments = new LinkedList<TrackSegment>(); segments.add(segment1); BasicTrack testSubject = new BasicTrack(segments, "Test Track"); testSubject.addTrackSegment(segment2); List<TrackSegment> returnedSegments = testSubject.getTrackSegments(); TrackSegment returnedSegment1 = returnedSegments.get(0); if(returnedSegment1.equals(segment1) != true) { fail("The first segment did not match."); } } @Test public void testClearTrackSegments() { TrackSegment segment1 = this.getBasicTrackSegmentForTest(1); TrackSegment segment2 = this.getBasicTrackSegmentForTest(2); LinkedList<TrackSegment> segments = new LinkedList<TrackSegment>(); segments.add(segment1); segments.add(segment2); BasicTrack testSubject = new BasicTrack(segments, "Test Track"); testSubject.clearTrackSegments(); List<TrackSegment> returnedSegments = testSubject.getTrackSegments(); if(returnedSegments.size() != 0) { fail("The track segments were not cleared."); } } private BasicTrackSegment getBasicTrackSegmentForTest(int argSegmentId) { LinkedList<SimpleWaypoint> waypoints = new LinkedList<SimpleWaypoint>(); if(argSegmentId == 1) { BasicWaypoint waypoint1 = BasicWaypoint .getBasicWaypoint(52.326, -120.522); waypoints.add(waypoint1); BasicWaypoint waypoint2 = BasicWaypoint .getBasicWaypoint(54.856, -120.876); waypoints.add(waypoint2); BasicWaypoint waypoint3 = BasicWaypoint .getBasicWaypoint(49.325, -120.874); waypoints.add(waypoint3); BasicWaypoint waypoint4 = BasicWaypoint .getBasicWaypoint(49.218, -121.253); waypoints.add(waypoint4); return new BasicTrackSegment(waypoints); } if(argSegmentId == 2) { BasicWaypoint waypoint1 = BasicWaypoint .getBasicWaypoint(35.845, -11.565); waypoints.add(waypoint1); BasicWaypoint waypoint2 = BasicWaypoint .getBasicWaypoint(36.002, -12.888); waypoints.add(waypoint2); BasicWaypoint waypoint3 = BasicWaypoint .getBasicWaypoint(36.552, -11.652); waypoints.add(waypoint3); BasicWaypoint waypoint4 = BasicWaypoint .getBasicWaypoint(36.844, -12.005); waypoints.add(waypoint4); return new BasicTrackSegment(waypoints); } else { IllegalArgumentException toThrow = new IllegalArgumentException ("The int passed to the helper method must have a value " + "of 1 or 2."); throw toThrow; } } }