module tests.code_command;

import reggae;
import unit_threaded;

int gCounter;
string[] gInputs;
string[] gOutputs;

private void incr(in string[] inputs, in string[] outputs) {
    gInputs = inputs.dup;
    gOutputs = outputs.dup;
    gCounter++;
}

void testSimpleCommand() {
    gCounter = 0;
    const tgt = Target("no output", &incr, Target("no input"));
    tgt.execute();
    gCounter.shouldEqual(1);
    gInputs.shouldEqual(["no input"]);
    gOutputs.shouldEqual(["no output"]);
}


void testRemoveBuildDir() {
    gCounter = 0;
    const cmd = Command(&incr).expandBuildDir;
    cmd.execute("", [], []);
    gCounter.shouldEqual(1);
}