-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathCustomerReferenceTests.cs
130 lines (95 loc) · 3.91 KB
/
CustomerReferenceTests.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
127
128
129
130
using System.Threading.Tasks;
using Fortnox.SDK;
using Fortnox.SDK.Entities;
using Fortnox.SDK.Exceptions;
using Fortnox.SDK.Search;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace FortnoxSDK.Tests.ConnectorTests;
[TestClass]
public class CustomerReferenceTests
{
public FortnoxClient FortnoxClient = TestUtils.DefaultFortnoxClient;
[TestMethod]
public async Task Test_CustomerReference_CRUD()
{
#region Arrange
var tmpCustomer = await FortnoxClient.CustomerConnector.CreateAsync(new Customer() { Name = "TestCustomer" });
#endregion Arrange
var connector = FortnoxClient.CustomerReferenceConnector;
#region CREATE
var newCustomerReference = new CustomerReferenceRow()
{
Reference = "abc",
CustomerNumber = tmpCustomer.CustomerNumber
};
var createdCustomerReference = await connector.CreateAsync(newCustomerReference);
Assert.AreEqual("abc", createdCustomerReference.Reference);
#endregion CREATE
#region UPDATE
createdCustomerReference.Reference = "def";
createdCustomerReference.CustomerNumber = null;
var updatedCustomerReference = await connector.UpdateAsync(createdCustomerReference);
Assert.AreEqual("def", updatedCustomerReference.Reference);
#endregion UPDATE
#region READ / GET
var retrievedCustomerReference = await connector.GetAsync(createdCustomerReference.Id);
Assert.AreEqual("def", retrievedCustomerReference.Reference);
#endregion READ / GET
#region DELETE
await connector.DeleteAsync(createdCustomerReference.Id);
await Assert.ThrowsExceptionAsync<FortnoxApiException>(
async () => await connector.GetAsync(createdCustomerReference.Id),
"Entity still exists after Delete!");
#endregion DELETE
#region Delete arranged resources
await FortnoxClient.CustomerConnector.DeleteAsync(tmpCustomer.CustomerNumber);
#endregion Delete arranged resources
}
[TestMethod]
public async Task Test_CustomerReference_Find()
{
#region Arrange
var tmpCustomer = await FortnoxClient.CustomerConnector.CreateAsync(new Customer() { Name = "TestCustomer" });
#endregion Arrange
var connector = FortnoxClient.CustomerReferenceConnector;
var newCustomerReference = new CustomerReferenceRow()
{
CustomerNumber = tmpCustomer.CustomerNumber
};
//Add entries
for (var i = 0; i < 5; i++)
{
newCustomerReference.Reference = TestUtils.RandomString();
await connector.CreateAsync(newCustomerReference);
}
//Apply base test filter
var searchSettings = new CustomerReferenceSearch();
searchSettings.Customer = tmpCustomer.CustomerNumber;
var fullCollection = await connector.FindAsync(searchSettings);
Assert.AreEqual(5, fullCollection.Count);
//Apply Limit
searchSettings.Limit = 2;
var limitedCollection = await connector.FindAsync(searchSettings);
Assert.AreEqual(2, limitedCollection.Count);
//Delete entries
foreach (var entry in fullCollection)
{
await connector.DeleteAsync(entry.Id);
}
#region Delete arranged resources
await FortnoxClient.CustomerConnector.DeleteAsync(tmpCustomer.CustomerNumber);
#endregion Delete arranged resources
}
// Requires at least 101 customer references to exist in data source
[TestMethod]
public async Task Test_CustomerReference_Find_Unlimited()
{
var connector = FortnoxClient.CustomerReferenceConnector;
var searchSettings = new CustomerReferenceSearch()
{
Limit = ApiConstants.Unlimited
};
var all = await connector.FindAsync(searchSettings);
Assert.IsTrue(all.Count > 100);
}
}