"""Test markov utility methods."""
from django.test import TestCase

from markov.lib import get_word_out_of_states, learn_line
from markov.models import MarkovContext, MarkovState


class MarkovLibTestCase(TestCase):
    """Test library methods used by the Markov plugin."""

    fixtures = ['tests/fixtures/irc_server_fixture.json', 'tests/fixtures/markov_fixture.json']

    def test_learn_and_get(self):
        """Test that we can learn some lines and get a word back."""
        learn_line("the elephant goes ERRRRRRRRRRRRR", MarkovContext.objects.get(pk=1))
        word = get_word_out_of_states(MarkovState.objects.all())
        self.assertIn(word, ['the', 'elephant', 'goes', 'ERRRRRRRRRRRRR', '__stop'])