-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathGetOctopusProjectGroupTests.cs
126 lines (100 loc) · 4 KB
/
GetOctopusProjectGroupTests.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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using NUnit.Framework;
using Octoposh.Cmdlets;
using Octoposh.Model;
using Octopus.Client.Model;
namespace Octoposh.Tests
{
[TestFixture]
public class GetOctopusProjectGroupTests
{
private static readonly string CmdletName = "Get-OctopusProjectGroup";
private static readonly Type CmdletType = typeof(GetOctopusProjectGroup);
[Test]
public void GetProjectGroupBySingleName()
{
var parameters = new List<CmdletParameter> {new CmdletParameter()
{
Name = "Name", SingleValue = "TestProjectGroup1"
}};
var powershell = new CmdletRunspace().CreatePowershellcmdlet(CmdletName, CmdletType, parameters);
var results = powershell.Invoke<OutputOctopusProjectGroup>();
Assert.AreEqual(results.Count, 1);
Console.WriteLine("Items Found:");
foreach (var item in results)
{
Console.WriteLine(item.Name);
}
}
[Test]
public void GetProjectGroupsByMultipleNames()
{
var parameters = new List<CmdletParameter> {new CmdletParameter()
{
Name = "Name", MultipleValue = new[] {"TestProjectGroup1","TestProjectGroup2"}
}};
var powershell = new CmdletRunspace().CreatePowershellcmdlet(CmdletName, CmdletType, parameters);
var results = powershell.Invoke<OutputOctopusProjectGroup>();
Assert.AreEqual(results.Count, 2);
Console.WriteLine("Items Found:");
foreach (var item in results)
{
Console.WriteLine(item.Name);
}
}
[Test]
public void GetProjectGroupsByNameUsingWildcard()
{
var namePattern = "*1";
var parameters = new List<CmdletParameter> {new CmdletParameter()
{
Name = "Name", SingleValue = namePattern
}};
Console.WriteLine("Looking for resources with name pattern: {0}", namePattern);
var pattern = new WildcardPattern(namePattern);
var powershell = new CmdletRunspace().CreatePowershellcmdlet(CmdletName, CmdletType, parameters);
var results = powershell.Invoke<OutputOctopusProjectGroup>();
Assert.Greater(results.Count, 0);
Console.WriteLine("Resources found: {0}", results.Count);
foreach (var item in results)
{
Console.WriteLine("Resource name: {0}", item.Name);
Assert.IsTrue(pattern.IsMatch(item.Name));
}
}
[Test]
public void DontGetProjectGroupIfNameDoesntMatch()
{
var resourceName = "TotallyANameThatYoullNeverPutToAResource";
var parameters = new List<CmdletParameter> {new CmdletParameter()
{
Name = "Name", SingleValue = resourceName
}};
var powershell = new CmdletRunspace().CreatePowershellcmdlet(CmdletName, CmdletType, parameters);
var results = powershell.Invoke<OutputOctopusProjectGroup>();
Assert.AreEqual(results.Count, 0);
}
[Test]
public void GetProjectGroupUsingResourceOnlyReturnsRawResource()
{
var parameters = new List<CmdletParameter>
{
new CmdletParameter()
{
Name = "resourceOnly"
}
};
var powershell = new CmdletRunspace().CreatePowershellcmdlet(CmdletName, CmdletType, parameters);
var results = powershell.Invoke<ProjectGroupResource>();
//If [results] has at least one item, It'll be of the base resource type meaning the test was successful
Assert.Greater(results.Count, 0);
;
}
}
}