summaryrefslogtreecommitdiff
path: root/test-runner/src/test/kotlin/org/terst/nav/ais/AisVesselTest.kt
blob: a583a32aa12caae756526c8f6f496f0d269a33a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package org.terst.nav.ais

import org.junit.Assert.*
import org.junit.Test

class AisVesselTest {

    @Test
    fun `holds all fields correctly`() {
        val vessel = AisVessel(
            mmsi = 123456789,
            name = "MY VESSEL",
            callsign = "W1ABC",
            lat = 37.5,
            lon = -122.0,
            sog = 5.5,
            cog = 270.0,
            heading = 269,
            vesselType = 36,
            timestampMs = 1000L
        )
        assertEquals(123456789, vessel.mmsi)
        assertEquals("MY VESSEL", vessel.name)
        assertEquals("W1ABC", vessel.callsign)
        assertEquals(37.5, vessel.lat, 0.0)
        assertEquals(-122.0, vessel.lon, 0.0)
        assertEquals(5.5, vessel.sog, 0.0)
        assertEquals(270.0, vessel.cog, 0.0)
        assertEquals(269, vessel.heading)
        assertEquals(36, vessel.vesselType)
        assertEquals(1000L, vessel.timestampMs)
    }

    @Test
    fun `equality based on all fields`() {
        val v1 = AisVessel(1, "A", "B", 0.0, 0.0, 0.0, 0.0, 0, 0, 100L)
        val v2 = AisVessel(1, "A", "B", 0.0, 0.0, 0.0, 0.0, 0, 0, 100L)
        assertEquals(v1, v2)
    }

    @Test
    fun `inequality when mmsi differs`() {
        val v1 = AisVessel(1, "A", "B", 0.0, 0.0, 0.0, 0.0, 0, 0, 100L)
        val v2 = AisVessel(2, "A", "B", 0.0, 0.0, 0.0, 0.0, 0, 0, 100L)
        assertNotEquals(v1, v2)
    }

    @Test
    fun `heading 511 means not available`() {
        val vessel = AisVessel(1, "", "", 0.0, 0.0, 0.0, 0.0, 511, 0, 0L)
        assertEquals(511, vessel.heading)
    }
}