import re

import pytest

from buildtrigger.triggerutil import matches_ref

@pytest.mark.parametrize('ref, filt, matches', [
  ('ref/heads/master', '.+', True),
  ('ref/heads/master', 'heads/.+', True),
  ('ref/heads/master', 'heads/master', True),
  ('ref/heads/slash/branch', 'heads/slash/branch', True),
  ('ref/heads/slash/branch', 'heads/.+', True),

  ('ref/heads/foobar', 'heads/master', False),
  ('ref/heads/master', 'tags/master', False),

  ('ref/heads/master', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)', True),
  ('ref/heads/alpha', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)', True),
  ('ref/heads/beta', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)', True),
  ('ref/heads/gamma', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)', True),

  ('ref/heads/delta', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)', False),
])
def test_matches_ref(ref, filt, matches):
  assert matches_ref(ref, re.compile(filt)) == matches