@Test
	public void testUpdateLapInfo()
	{
		final Competitor competitor = getCompetitor();

		String[] tokens = {
			"$SP", "3", "1234BE", "2", "00:01:33.894", "76682"
		};

		LapInfo message = new LapInfo(tokens);

		Competitor.updateOrCreate(message);

		ArrayList<Competitor.Lap> laps = competitor.getLaps();

		for (Competitor.Lap lap : laps) {
			if (lap.lapNumber == 2) {
				assertEquals(lap.lapTime, new Duration("00:01:33.894"));
			}
		}

		competitor.addPropertyChangeListener(new PropertyChangeListener() {

			@Override
			public void propertyChange(PropertyChangeEvent evt)
			{
				if ("bestLap".equals(evt.getPropertyName())) {
					bestLapFired = true;
					assertEquals(new Duration("00:01:31.123"), evt.getNewValue());
					assertEquals(new Duration("00:01:31.123"), competitor.getBestLap());
				}
			}
		});

		String[] tokens_1 = {
			"$SP", "3", "1234BE", "3", "00:01:31.123", "76682"
		};

		LapInfo message_1 = new LapInfo(tokens_1);

		Competitor.updateOrCreate(message_1);

		assertTrue(bestLapFired);
	}