-
Notifications
You must be signed in to change notification settings - Fork 0
/
FakeWindowsServiceFacade.cs
60 lines (52 loc) · 1.6 KB
/
FakeWindowsServiceFacade.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
using System;
using System.Threading.Tasks;
using CommandBasedComponents.Infrastructure;
namespace CommandBasedComponents.Testing
{
public class FakeWindowsServiceFacade : IWindowsServiceFacade
{
public FakeWindowsServiceFacade()
{
IsStopped = true;
}
public bool IsStarted { get; set; }
public bool IsStopped { get; set; }
bool IWindowsServiceFacade.IsStarted(string name)
{
return IsStarted;
}
bool IWindowsServiceFacade.IsStopped(string name)
{
return IsStopped;
}
public bool Exists(string name)
{
return true;
}
public Task<bool> Kill(string name)
{
Console.WriteLine("Service " + name + " killed");
var source = new TaskCompletionSource<bool>();
source.SetResult(true);
return source.Task;
}
public Task<bool> Start(string name)
{
IsStarted = true;
IsStopped = false;
Console.WriteLine("Service " + name + " started");
var source = new TaskCompletionSource<bool>();
source.SetResult(true);
return source.Task;
}
public Task<bool> Stop(string name)
{
IsStopped = true;
IsStarted = false;
Console.WriteLine("Service " + name + " stopped");
var source = new TaskCompletionSource<bool>();
source.SetResult(true);
return source.Task;
}
}
}