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

		String[] tokens = {
			"$A", "1234BE", "123", "54321", "Jack", "Jackson", "MX", "6"
		};

		CompInfo message = new CompInfo(tokens);

		competitor.addPropertyChangeListener(new PropertyChangeListener() {

			@Override
			public void propertyChange(PropertyChangeEvent evt)
			{
				if ("number".equals(evt.getPropertyName())) {
					numberFired = true;
					assertEquals("123", evt.getNewValue());
					assertEquals("123", competitor.getNumber());
				}

				if ("transNumber".equals(evt.getPropertyName())) {
					transNumberFired = true;
					assertEquals(54321, evt.getNewValue());
					assertEquals(54321, competitor.getTransNumber());
				}

				if ("firstName".equals(evt.getPropertyName())) {
					firstNameFired = true;
					assertEquals("Jack", evt.getNewValue());
					assertEquals("Jack", competitor.getFirstName());
				}

				if ("lastName".equals(evt.getPropertyName())) {
					lastNameFired = true;
					assertEquals("Jackson", evt.getNewValue());
					assertEquals("Jackson", competitor.getLastName());
				}

				if ("nationality".equals(evt.getPropertyName())) {
					nationalityFired = true;
					assertEquals("MX", evt.getNewValue());
					assertEquals("MX", competitor.getNationality());
				}

				if ("classId".equals(evt.getPropertyName())) {
					classIdFired = true;
					assertEquals(6, evt.getNewValue());
					assertEquals(6, competitor.getClassId());
				}
			}
		});

		Competitor.updateOrCreate(message);

		assertTrue(numberFired);
		assertTrue(transNumberFired);
		assertTrue(firstNameFired);
		assertTrue(lastNameFired);
		assertTrue(nationalityFired);
		assertTrue(classIdFired);
	}