@staticmethod
def __has_keys(arrival):
    """Verifies the provided arrival dictionary has the necessary keys.

        Expected keys:
         * DESTINATION
         * DIRECTION
         * EVENT_TIME
         * LINE
         * NEXT_ARR
         * STATION
         * TRAIN_ID
         * WAITING_SECONDS
         * WAITING_TIME

        :param arrival: Arrival JSON from MARTA API
        :type arrival: dict
        :return: True if all keys are found
        :raises KeyError: If the provided dict has an unexpected key or
            is missing an expected key.
        """
    expected_keys = ['DESTINATION', 'DIRECTION', 'EVENT_TIME', 'LINE',
        'NEXT_ARR', 'STATION', 'TRAIN_ID', 'WAITING_SECONDS', 'WAITING_TIME']
    arrival_keys = list(arrival.keys())
    unique_keys = set(expected_keys) ^ set(arrival_keys)
    if unique_keys:
        raise KeyError(
            'Found unexpected keys.\n\tExpected: {}\n\tNot in list: {}'.
            format(','.join(expected_keys), ','.join(unique_keys)))
    return True
