package _VisualDVM.Passes.All;
import Common.Visual.UI_;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Passes.Server.TestingSystemPass;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
import _VisualDVM.Visual.UI;

import java.io.File;
public class ConvertCorrectnessTests extends TestingSystemPass<File> {
    @Override
    public String getIconPath() {
        return "/icons/DownloadAll.png";
    }
    @Override
    public String getButtonText() {
        return "";
    }
    @Override
    protected int getTimeout() {
        return 0;
    }
    @Override
    protected boolean canStart(Object... args) throws Exception {
        if (!Global.mainModule.getAccount().isAdmin()) {
            Log.Writeln_("Вы не являетесь администратором");
            return false;
        }
        if (!Global.mainModule.Check(Log, Current.ServerSapfor)) {
            return false;
        }
        return UI_.Warning("Загрузить полный пакет DVM тестов на корректность и производительность.");
    }
    @Override
    protected boolean needsAnimation() {
        return true;
    }
    @Override
    protected void performPreparation() throws Exception {
        Global.mainModule.getPass(PassCode.CloseCurrentProject);
        Global.mainModule.set(Current.Root, null);
        Global.mainModule.set(Current.Version, null);
    }
    @Override
    protected void showPreparation() throws Exception {
        UI.testingBar.ShowAutoCheckTesting();
    }
    @Override
    protected void ServerAction() throws Exception {
        Command(new ServerExchangeUnit_2021(ServerCode.RefreshDVMTests,
                String.valueOf(Global.mainModule.getServerSapfor().id), Global.mainModule.getAccount()));
    }
    @Override
    protected void performFinish() throws Exception {
        super.performFinish();
        Global.mainModule.getPass(PassCode.SynchronizeTests).Do();
    }
}

