/
RemoveSubscriptionTests.cs
72 lines (60 loc) · 2.53 KB
/
RemoveSubscriptionTests.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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Fitbit.Api.Portable;
using NUnit.Framework;
using Fitbit.Models;
namespace Fitbit.Portable.Tests
{
[TestFixture]
public class RemoveSubscriptionTests
{
[Test]
[Category("PubSub")]
[Category("Portable")]
public void DeleteSubscription_Correctly()
{
var subId = "320";
var expectedUrl = @"https://api.fitbit.com/1/user/-/apiSubscriptions/"+subId+".json";
var sut = this.SetupFitbitClient(null, expectedUrl, HttpMethod.Delete);
//Any unexpected behavior will throw exception or fail on request checks (in handler)
//Pass APICollectionType.user to delete subscriptions for all data sets
sut.DeleteSubscriptionAsync(APICollectionType.user, subId).Wait();
}
[Test]
[Category("PubSub")]
[Category("Portable")]
public void DeleteSubscriptonFromSpecificCollection()
{
var subId = "320";
var collection = APICollectionType.activities;
var expectedUrl = @"https://api.fitbit.com/1/user/-/"+ collection +@"/apiSubscriptions/" + subId + ".json";
var sut = this.SetupFitbitClient(null, expectedUrl, HttpMethod.Delete);
//Any unexpected behavior will throw exception or fail on request checks (in handler)
sut.DeleteSubscriptionAsync(collection, subId).Wait();
}
private FitbitClient SetupFitbitClient(string contentPath, string url, HttpMethod expectedMethod, Action<HttpRequestMessage> additionalChecks = null)
{
var content = string.Empty;
if (contentPath != null)
content = SampleDataHelper.GetContent(contentPath);
var responseMessage = new Func<HttpResponseMessage>(() =>
{
return new HttpResponseMessage(HttpStatusCode.NoContent) { Content = new StringContent(content) };
});
var verification = new Action<HttpRequestMessage, CancellationToken>((message, token) =>
{
Assert.AreEqual(expectedMethod, message.Method);
Assert.AreEqual(url, message.RequestUri.AbsoluteUri);
if (additionalChecks != null)
additionalChecks(message);
});
return Helper.CreateFitbitClient(responseMessage, verification);
}
}
}