/
Analysis_WorkFlow.cs
126 lines (98 loc) · 5.21 KB
/
Analysis_WorkFlow.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// This file is part of the OWASP O2 Platform (http://www.owasp.org/index.php/OWASP_O2_Platform) and is released under the Apache 2.0 License (http://www.apache.org/licenses/LICENSE-2.0)
using System.IO;
using FluentSharp.CoreLib.API;
using FluentSharp.CoreLib.Interfaces;
using NUnit.Framework;
using O2.XRules.Database.Interfaces;
//O2Ref:nunit.framework.dll
//O2File:IAnalysisArtifacts.cs
//O2File:Analysis_WorkFlow_Phase_1.cs
//O2File:Analysis_WorkFlow_Phase_2.cs
//O2File:Analysis_WorkFlow_Phase_3.cs
//O2File:Analysis_WorkFlow_Phase_4.cs
//O2File:Analysis_WorkFlow_Phase_5.cs
namespace O2.XRules.Database._Rules.IBM.Analysis_Workflows
{
[TestFixture]
public class Analysis_Workflow : KXRule
{
string testAnalysisArtifactsFile = @"E:\O2\Demodata\_AnalysisWorkflow\WebGoat.AnalysisArtifacts";
//string testAnalysisArtifactsFile = @"E:\O2\Demodata\_AnalysisWorkflow\....AnalysisArtifacts";
private static IO2Log log = PublicDI.log;
public Analysis_Workflow()
{
Name = "Analysis_Workflow";
}
[XRule(Name = "Start from GUI")]
public string start()
{
return start(testAnalysisArtifactsFile);
}
[XRule(Name = "Start with artifacts file")]
public string start(string analysisArtifactsFile)
{
var analysisArtifacts = KAnalysisArtifacts.load(analysisArtifactsFile);
start(analysisArtifacts);
return "execution completed";
}
[XRule(Name = "Start with assessments")]
public string start(string folderWithAssessments, string targetFolder)
{
return start(folderWithAssessments, "", targetFolder);
}
[XRule(Name = "Start with assessments and projects")]
public string start(string folderWithAssessments, string folderWithProjectFiles, string targetFolder)
{
var projectName = Path.GetFileName(folderWithAssessments); // get the project name from the name of the folderWithAssessments
var analysisArtifacts = new KAnalysisArtifacts(projectName);
analysisArtifacts.assessmentFilesOrFolderToLoad.Add(folderWithAssessments);
if (false == string.IsNullOrEmpty(folderWithProjectFiles))
analysisArtifacts.projectFilesOrFolder.Add(folderWithProjectFiles);
analysisArtifacts.targetFolder = targetFolder;
return start(analysisArtifacts);
}
[XRule(Name = "Start")]
public string start(IAnalysisArtifacts analysisArtifacts)
{
O2Cmd.log.write("\n\n********* O2 Analysis Workflow **********\n\n");
O2Cmd.log.write(analysisArtifacts.getAnalysisDetails());
if (analysisArtifacts.runAllPhases || analysisArtifacts.phase_1.run)
new Analysis_Workflow_Phase_1().runPhase1(analysisArtifacts);
if (analysisArtifacts.runAllPhases || analysisArtifacts.phase_2.run)
new Analysis_Workflow_Phase_2().runPhase2(analysisArtifacts);
if (analysisArtifacts.runAllPhases || analysisArtifacts.phase_3.run)
new Analysis_Workflow_Phase_3().runPhase3(analysisArtifacts);
if (analysisArtifacts.runAllPhases || analysisArtifacts.phase_4.run)
new Analysis_Workflow_Phase_4().runPhase4(analysisArtifacts);
if (analysisArtifacts.runAllPhases || analysisArtifacts.phase_5.run)
new Analysis_Workflow_Phase_5().runPhase5(analysisArtifacts);
return "execution completed";
}
[Test]
[XRule(Name = "test Manual Phases")]
public string testManualPhases()
{
return manual_phases(testAnalysisArtifactsFile,"1234");
}
[XRule(Name = "Manual_Phases")]
public string manual_phases(string analysisArtifactsFile, string phase)
{
O2Cmd.log.write("\n\n********* O2 Analysis Workflow : Manual Phase execution **********\n\n");
O2Cmd.log.write("\n: analysisArtifactsFile = {0}", analysisArtifactsFile);
O2Cmd.log.write("\n: phase = {0}", phase);
var analysisArtifacts = KAnalysisArtifacts.load(analysisArtifactsFile);
O2Cmd.log.write(analysisArtifacts.getAnalysisDetails());
if (phase.IndexOf("1") > -1)
new Analysis_Workflow_Phase_1().runPhase1(analysisArtifacts);
if (phase.IndexOf("2") > -1)
new Analysis_Workflow_Phase_2().runPhase2(analysisArtifacts);
if (phase.IndexOf("3") > -1)
new Analysis_Workflow_Phase_3().runPhase3(analysisArtifacts);
if (phase.IndexOf("4") > -1)
new Analysis_Workflow_Phase_4().runPhase4(analysisArtifacts);
if (phase.IndexOf("5") > -1)
new Analysis_Workflow_Phase_5().runPhase5(analysisArtifacts);
return "manual phase execution completed";
}
}
}