Замена проекта в тесте на текущий.

This commit is contained in:
2024-03-02 01:44:03 +03:00
parent c34728f65d
commit 34504f9992
7 changed files with 83 additions and 11 deletions

View File

@@ -77,5 +77,7 @@ public enum ServerCode {
DownloadDVMPackage,
DownloadDVMPackages,
DownloadSapforPackage,
InstallServerSapfor;
InstallServerSapfor,
ReplaceTestCode
;
}

View File

@@ -8,6 +8,7 @@ public class TestsMenuBar extends DataMenuBar {
PassCode_2021.CreateTestFromDirectory,
PassCode_2021.CreateTestsFromFiles, ///----------------------------
PassCode_2021.EditTest,
PassCode_2021.ReplaceTestProject,
PassCode_2021.DownloadTest,
PassCode_2021.DeleteTest);
}

View File

@@ -244,6 +244,10 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
Print("Установить текущую версию SAPFOR для тестирования");
InstallServerSapfor();
break;
case ReplaceTestCode:
Print("Заменить код теста");
ReplaceTestCode();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
@@ -544,4 +548,16 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
}else throw new RepositoryRefuseException("Не удалось собрать SAPFOR");
}
private void ReplaceTestCode() throws Exception {
Test test = (Test) request.object;
response = new ServerExchangeUnit_2021(ServerCode.OK);
//---
if (!test.unpackProjectOnServer()) {
db.Delete(test);
throw new RepositoryRefuseException(
"Не удалось прикрепить проект к тесту с id " + test.id
+ "\nТест будет удален"
);
}else db.Update(test); //обновить список файлов и размерность.
}
}

View File

@@ -34,6 +34,14 @@ public class CreateTestFromDirectory extends Pass_2021<Test> {
File dir = null;
boolean from_directory_chooser = false;
Vector<ProjectFile> project_files = new Vector<>();
protected boolean initTarget() throws Exception{
target = new Test();
target.sender_address = Current.getAccount().email;
target.sender_name = Current.getAccount().name;
target.group_id = group.id;
target.description = dir.getName();
return true;
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (args.length == 0) {
@@ -126,12 +134,9 @@ public class CreateTestFromDirectory extends Pass_2021<Test> {
group.language.PrintExtensions()
);
}
//-----
target = new Test();
target.sender_address = Current.getAccount().email;
target.sender_name = Current.getAccount().name;
target.group_id = group.id;
target.description = dir.getName();
//----
if (!initTarget()) return false;
//----
Vector<String> filesNames = new Vector<>();
for (ProjectFile projectFile : project_files)
filesNames.add(projectFile.file.getName());

View File

@@ -0,0 +1,43 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Repository.Server.ServerCode;
import Repository.Server.ServerExchangeUnit_2021;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
import java.io.Serializable;
public class ReplaceTestProject extends CreateTestFromProject {
@Override
public String getIconPath() {
return "/icons/Menu/Undo.png";
}
@Override
protected void performDone() throws Exception {
TestingSystemPass testingSystemPass = new TestingSystemPass() {
@Override
protected boolean canStart(Object... args) throws Exception {
target = args[0];
return true;
}
@Override
public String getDescription() {
return "Замена кода теста на сервере";
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(ServerCode.ReplaceTestCode, null, (Serializable) target));
}
};
testingSystemPass.Do(target);
passes.get(PassCode_2021.SynchronizeTests).Do();
}
@Override
protected boolean initTarget() throws Exception {
if (Current.Check(Log, Current.Test)) {
target = Current.getTest();
return true;
}
return false;
}
}

View File

@@ -317,13 +317,14 @@ public enum PassCode_2021 {
CloneDVMPackage,
CloneSapforPackage,
SPF_RemoveDeadCode,
ReplaceTestProject
;
public String getDescription() {
switch (this) {
case Undefined:
return "?";
case ReplaceTestProject:
return "Заменить тестовый проект на текущий";
case SPF_RemoveDeadCode:
return "Удаление мертвого кода";
case CloneSapforPackage: