25
25
26
26
using System ;
27
27
using System . Collections . Generic ;
28
- using System . IO ;
29
28
using System . Linq ;
30
- using System . Web . Script . Serialization ;
31
29
using TestStack . BDDfy . Core ;
32
30
33
31
namespace TestStack . BDDfy . Processors . Diagnostics
34
32
{
35
33
public class DiagnosticsReporter : IBatchProcessor
36
34
{
37
- private static string OutputDirectory
35
+ private readonly ISerializer _serializer ;
36
+ private readonly IReportWriter _writer ;
37
+
38
+ public DiagnosticsReporter ( ) : this ( new JsonSerializer ( ) , new FileWriter ( ) ) { }
39
+
40
+ public DiagnosticsReporter ( ISerializer serializer , IReportWriter writer )
38
41
{
39
- get
40
- {
41
- string codeBase = typeof ( DiagnosticsReporter ) . Assembly . CodeBase ;
42
- var uri = new UriBuilder ( codeBase ) ;
43
- string path = Uri . UnescapeDataString ( uri . Path ) ;
44
- return Path . GetDirectoryName ( path ) ;
45
- }
42
+ _serializer = serializer ;
43
+ _writer = writer ;
46
44
}
47
45
48
46
public void Process ( IEnumerable < Story > stories )
@@ -53,21 +51,18 @@ public void Process(IEnumerable<Story> stories)
53
51
54
52
try
55
53
{
56
- report = CreateJson ( viewModel ) ;
54
+ var data = GetDiagnosticData ( viewModel ) ;
55
+ report = _serializer . Serialize ( data ) ;
57
56
}
58
57
catch ( Exception ex )
59
58
{
60
59
report = error + ex . Message ;
61
60
}
62
61
63
- var path = Path . Combine ( OutputDirectory , "Diagnostics.json" ) ;
64
-
65
- if ( File . Exists ( path ) )
66
- File . Delete ( path ) ;
67
- File . WriteAllText ( path , report ) ;
62
+ _writer . Create ( report , "Diagnostics.json" ) ;
68
63
}
69
64
70
- public string CreateJson ( FileReportModel viewModel )
65
+ public List < object > GetDiagnosticData ( FileReportModel viewModel )
71
66
{
72
67
var graph = new List < object > ( ) ;
73
68
foreach ( var story in viewModel . Stories )
@@ -89,10 +84,7 @@ public string CreateJson(FileReportModel viewModel)
89
84
} ) ;
90
85
}
91
86
92
- var serializer = new JavaScriptSerializer ( ) ;
93
- string json = serializer . Serialize ( graph ) ;
94
-
95
- return new JsonFormatter ( json ) . Format ( ) ;
87
+ return graph ;
96
88
}
97
89
}
98
90
}
0 commit comments