module mocked.tests.option;

import dshould;
import mocked;
import mocked.option;

@("sets multiple comparators")
unittest
{
    alias floatComparator = (float, float) => false;
    alias charComparator = (char, char) => true;

    Options!(Comparator!floatComparator, Comparator!charComparator) options;

    options.equal('a', 'a').should.equal(true);
    options.equal(1.2, 1.3).should.equal(false);
}

@("uses custom comparasion")
unittest
{
    alias intComparator = (int a, int b) => false;

    Options!(Comparator!intComparator) options;

    options.equal(5, 5).should.be(false);
}

@("uses fallback comparison")
unittest
{
    alias stringComparator = (string a, string b) => false;

    Options!(Comparator!stringComparator) options;

    options.equal(5, 5).should.be(true);
}