Skip to content

Commit 06f6e60

Browse files
committed
Make tests more reliable by creating test object in each test rather than relying on other tests to create it
Clean up after ourselves by deleting the test object when done
1 parent d320bed commit 06f6e60

1 file changed

Lines changed: 58 additions & 33 deletions

File tree

Rally.RestApi.Test/RallyRestApiTest.cs

Lines changed: 58 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ namespace Rally.RestApi.Test
1616
[TestClass]
1717
public class RallyRestApiTest
1818
{
19-
private static string defectOid;
20-
2119
public static RallyRestApi GetRallyRestApi(string userName = "", string password = "",
2220
string server = "", string wsapiVersion = "")
2321
{
@@ -116,12 +114,16 @@ public void CreateTest2x()
116114

117115
private void AssertCanCreate(RallyRestApi restApi)
118116
{
119-
CreateResult response = CreateDefect(restApi);
120-
Assert.AreEqual(0, response.Errors.Count);
121-
Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
122-
dynamic testDefect = restApi.GetByReference(response.Reference);
123-
Assert.AreEqual("C# Json Rest Toolkit Test Defect", testDefect.Name);
124-
defectOid = Ref.GetOidFromRef(response.Reference);
117+
var dynamicJson = new DynamicJsonObject();
118+
dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
119+
CreateResult response = restApi.Create("defect", dynamicJson);
120+
Assert.AreEqual(0, response.Errors.Count);
121+
Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
122+
dynamic testDefect = restApi.GetByReference(response.Reference);
123+
Assert.AreEqual(dynamicJson["Name"], testDefect.Name);
124+
125+
// Now delete it
126+
TestHelperDeleteDefect(restApi, response.Reference);
125127
}
126128

127129
[TestMethod]
@@ -153,7 +155,7 @@ private void AssertCreateFailure(RallyRestApi restApi)
153155
public void AddToCollection2x()
154156
{
155157
RallyRestApi restApi = GetRallyRestApi2x();
156-
var itemRef = CreateDefect(restApi).Reference;
158+
var itemRef = TestHelperCreateDefect(restApi);
157159
DynamicJsonObject newTask = new DynamicJsonObject();
158160
newTask["Name"] = "New Task Added via collection";
159161
NameValueCollection parameters = new NameValueCollection();
@@ -200,29 +202,16 @@ public void Delete2x()
200202
AssertCanDelete(restApi);
201203
}
202204

203-
private CreateResult CreateDefect(RallyRestApi restApi)
205+
private void AssertCanDelete(RallyRestApi restApi, bool includeFullData = false)
204206
{
205-
var dynamicJson = new DynamicJsonObject();
206-
dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
207-
return restApi.Create("defect", dynamicJson);
208-
}
207+
// Create test defect
208+
var defect = TestHelperCreateDefect(restApi, includeFullData);
209+
var defectOid = Ref.GetOidFromRef(defect);
209210

210-
private void AssertCanDelete(RallyRestApi restApi, bool includeFullData = false)
211-
{
212-
var dynamicJson = new DynamicJsonObject();
213-
dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
214-
if (includeFullData)
215-
{
216-
dynamicJson["Owner"] = restApi.GetCurrentUser()["_ref"];
217-
dynamicJson["Package"] = "Package A";
218-
}
219-
CreateResult response = restApi.Create("defect", dynamicJson);
220-
Assert.AreEqual(0, response.Errors.Count);
221-
Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
222-
OperationResult deleteResponse = restApi.Delete(Ref.GetRelativeRef(response.Reference));
223-
dynamic testDefectEmpty = restApi.GetByReference(response.Reference);
224-
Assert.IsNull(testDefectEmpty);
225-
}
211+
OperationResult deleteResponse = restApi.Delete(Ref.GetRelativeRef(defect));
212+
dynamic testDefectEmpty = restApi.GetByReference(defect);
213+
Assert.IsNull(testDefectEmpty);
214+
}
226215

227216
[TestMethod]
228217
public void Update1x()
@@ -240,21 +229,59 @@ public void Update2x()
240229

241230
private void AssertCanUpdate(RallyRestApi restApi)
242231
{
232+
// Create test defect
233+
var defect = TestHelperCreateDefect(restApi);
234+
var defectOid = Ref.GetOidFromRef(defect);
235+
243236
var dynamicJson = new DynamicJsonObject();
244237
dynamicJson["Name"] = "Dont delete me please " + DateTime.Now.Second;
245238
OperationResult response = restApi.Update("Defect", defectOid, dynamicJson);
246239
Assert.AreEqual(0, response.Errors.Count);
247240
dynamic updateDefect = restApi.GetByReference("/Defect/" + defectOid + ".js");
248241
Assert.AreEqual(dynamicJson["Name"], updateDefect.Name);
242+
243+
// Now delete it
244+
TestHelperDeleteDefect(restApi, defect);
245+
}
246+
247+
private string TestHelperCreateDefect(RallyRestApi restApi, bool includeFullData = false)
248+
{
249+
var dynamicJson = new DynamicJsonObject();
250+
dynamicJson["Name"] = "C# Json Rest Toolkit Test Defect";
251+
if (includeFullData)
252+
{
253+
dynamicJson["Owner"] = restApi.GetCurrentUser()["_ref"];
254+
dynamicJson["Package"] = "Package A";
255+
}
256+
257+
CreateResult response = restApi.Create("defect", dynamicJson);
258+
Assert.AreEqual(0, response.Errors.Count);
259+
Assert.IsTrue(response.Reference.ToLower().Contains("defect"));
260+
261+
return response.Reference;
262+
}
263+
264+
private void TestHelperDeleteDefect(RallyRestApi restApi, string reference)
265+
{
266+
OperationResult deleteResponse = restApi.Delete(Ref.GetRelativeRef(reference));
267+
dynamic testDefectEmpty = restApi.GetByReference(reference);
268+
Assert.IsNull(testDefectEmpty);
249269
}
250270

251271
[TestMethod]
252272
public void GetByReferenceTest()
253273
{
254274
RallyRestApi restApi = GetRallyRestApi();
255-
AssertCanCreate(restApi);
275+
276+
// Create test defect
277+
var defect = TestHelperCreateDefect(restApi);
278+
var defectOid = Ref.GetOidFromRef(defect);
279+
256280
dynamic response = restApi.GetByReference("/Defect/" + defectOid + ".js");
257281
Assert.AreEqual(defectOid, response.ObjectID.ToString());
282+
283+
// Now delete it
284+
TestHelperDeleteDefect(restApi, defect);
258285
}
259286

260287
[TestMethod]
@@ -300,8 +327,6 @@ public void GetByReferenceSubscriptionTest()
300327
Assert.IsNotNull(response.ObjectID);
301328
}
302329

303-
304-
305330
[TestMethod]
306331
public void TestAttribute1x()
307332
{

0 commit comments

Comments
 (0)