module unit_threaded.tests.module_with_tests;

import unit_threaded.attrs;

version(unittest) {
    import unit_threaded.should;

    //test functions
    void testFoo() {}
    void testBar() {}
    private void testPrivate() { } //should not show up
    @UnitTest void funcThatShouldShowUpCosOfAttr() { }

    //non-test functions
    private void someFun() {}
    private void testosterone() {}
    private void tes() {}

    //test classes
    class FooTest { void test() { } }
    class BarTest { void test() { } }
    @UnitTest class Blergh { }

    //non-test classes
    class NotATest { void tes() { } }
    class AlsoNotATest { void testosterone() { } }

    @HiddenTest void withHidden() {}
    void withoutHidden() { }
}


unittest {
    //1st block
    assert(true);
}

unittest {
    //2nd block
    assert(true);
}

@Name("myUnitTest")
unittest {
    assert(true);
}