package Visual_DVM_2021.Passes.All;
import Common.Current_;
import Common.Utils.Utils_;
import Common.Visual.UI_;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.ProjectData.Project.db_project_info;
import _VisualDVM.TestingSystem.Common.Test.Test;
import Visual_DVM_2021.Passes.PassCode;
import Common.Passes.Pass;

import java.util.Vector;
public class CreateTestsGroupFromSelectedVersions extends PublishTests {
    @Override
    public String getIconPath() {
        return "/icons/Publish.png";
    }
    @Override
    protected PassCode getCreateTestCode() {
        return PassCode.CreateTestFromProject;
    }
    @Override
    protected boolean canStart(Object... args) throws Exception {
        target = new Vector<>();
        //---
        if (Global.mainModule.Check(Log, Current.Group)) {
            group = Global.mainModule.getGroup();
        } else
            return false;
        //---------------------
        Vector<db_project_info> versions = new Vector<>();
        Global.mainModule.getRoot().getSelectedVersions(versions);
        if (versions.isEmpty()) {
            Log.Writeln_("Не отмечено ни одной версии.");
            return false;
        }
        //---
        Pass createTestPass =  Global.mainModule.getPass(getCreateTestCode());
        //---
        for (db_project_info version : versions) {
            if (createTestPass.Do(version, group))
                target.add((Test) createTestPass.target);
        }
        //---
        if (target.isEmpty()) {
            Log.Writeln_("Не удалось создать ни одного теста.");
            return false;
        }
        //---
        return UI_.Question("В группу " + Utils_.Brackets(group.description) +
                "\nбудет добавлено " + target.size() + " тестов.\nПродолжить");
    }
}
