Skip to content

Commit 082ac2f

Browse files
committed
re-organize user examples
1 parent 0ec99c8 commit 082ac2f

7 files changed

+122
-180
lines changed

README.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Get your account at <https://www.signnow.com/developers>
2424
- [Verify Access Token][verify_access_token example]
2525
- [Refresh Access Token][refresh_access_token example]
2626
- [User](#user)
27-
- [Creates an account for a user](#create-user)
27+
- [Creates an account for a user][create_user example]
2828
- [Retrieve User Information][get_user_info example]
2929
- [Sends verification email to a user][send_verification example]
3030
- [Change User details][update_user example]
@@ -630,12 +630,12 @@ If you have questions about the signNow API, please visit [signNow API Reference
630630

631631
<!-- Users -->
632632
[create_user example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/CreateSignNowUser.cs
633-
[get_user_info example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/CreateSignNowUser.cs#42
634-
[send_verification example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/SendVerificationEmailToUser.cs
635-
[update_user example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/ChangeUserDetails.cs#18
636-
[reset_password example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/ChangeUserDetails.cs#40
637-
[get_modified_docs example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/GetUserModifiedDocuments.cs#15
638-
[get_user_docs example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/GetUserDocuments.cs#15
633+
[get_user_info example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/ChangeUserDetails.cs
634+
[send_verification example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/CreateSignNowUser.cs
635+
[update_user example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/ChangeUserDetails.cs
636+
[reset_password example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/ChangeUserDetails.cs
637+
[get_modified_docs example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/GetUserModifiedDocuments.cs
638+
[get_user_docs example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Users/GetUserDocuments.cs
639639

640640
<!-- Documents -->
641641
[upload_document example]: https://github.com/signnow/SignNow.NET/blob/develop/SignNow.Net.Examples/Documents/UploadDocument.cs

SignNow.Net.Examples/ExamplesRunner.cs

+5-69
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
using Microsoft.VisualStudio.TestTools.UnitTesting;
88
using SignNow.Net.Examples.Documents;
99
using SignNow.Net.Examples.Folders;
10-
using SignNow.Net.Examples.Users;
1110
using SignNow.Net.Interfaces;
1211
using SignNow.Net.Model;
1312
using SignNow.Net.Model.ComplexTags;
@@ -30,7 +29,7 @@ namespace SignNow.Net.Examples
3029
[TestClass]
3130
public abstract class ExamplesRunner
3231
{
33-
private DateTime UnixEpoch => new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
32+
protected DateTime UnixEpoch => new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
3433

3534
/// <summary>
3635
/// Base path to the `TestExamples` directory.
@@ -101,74 +100,11 @@ public static void AssemblyInitialize(TestContext context)
101100

102101

103102
// #region User Examples
104-
//
105-
// /// <summary>
106-
// /// Run test for <see cref="UserExamples.CreateSignNowUser"/> and <see cref="UserExamples.SendVerificationEmailToUser"/>
107-
// /// </summary>
108-
// [TestMethod]
109-
// public async Task CreateSignNowUserTest()
110-
// {
111-
// var timestamp = (long)(DateTime.Now - UnixEpoch).TotalSeconds;
112-
//
113-
// var createUserResponse = await UserExamples.CreateSignNowUser(
114-
// "John",
115-
// $"Sample{timestamp}",
116-
// $"signnow.tutorial+sample_test{timestamp}@gmail.com",
117-
// "secretPassword",
118-
// testContext
119-
// ).ConfigureAwait(false);
120-
//
121-
// Assert.AreEqual($"signnow.tutorial+sample_test{timestamp}@gmail.com", createUserResponse.Email);
122-
// Assert.IsFalse(createUserResponse.Verified);
123-
//
124-
// // Finally - send verification email to User
125-
// await UserExamples.SendVerificationEmailToUser(createUserResponse.Email, testContext).ConfigureAwait(false);
126-
// }
127-
//
128-
// /// <summary>
129-
// /// Run test for example: <see cref="UserExamples.GetUserModifiedDocuments"/>
130-
// /// </summary>
131-
// [TestMethod]
132-
// public async Task GetUserModifiedDocumentsTest()
133-
// {
134-
// var perPage = 25;
135-
// var SignNowDocumentsAsync = await UserExamples
136-
// .GetUserModifiedDocuments(perPage, testContext)
137-
// .ConfigureAwait(false);
138-
//
139-
// var modifiedDocuments = SignNowDocumentsAsync.ToList();
140-
// foreach (var document in modifiedDocuments)
141-
// {
142-
// Assert.AreEqual(credentials.Login, document.Owner);
143-
// }
144-
//
145-
// Assert.IsNotNull(modifiedDocuments.Count);
146-
// Console.WriteLine($@"Total modified documents: {modifiedDocuments.Count}");
147-
// }
148-
//
149-
// /// <summary>
150-
// /// Run test for example: <see cref="UserExamples.GetUserDocuments"/>
151-
// /// </summary>
152-
// [TestMethod]
153-
// public async Task GetUserDocumentsTest()
154-
// {
155-
// var perPage = 25;
156-
// var SignNowDocumentsAsync = await UserExamples
157-
// .GetUserDocuments(perPage, testContext)
158-
// .ConfigureAwait(false);
159-
//
160-
// var userDocuments = SignNowDocumentsAsync.ToList();
161-
// foreach (var document in userDocuments)
162-
// {
163-
// Assert.AreEqual(credentials.Login, document.Owner);
164-
// }
165-
//
166-
// Assert.IsNotNull(userDocuments.Count);
167-
// Console.WriteLine($@"Total modified documents: {userDocuments.Count}");
168-
// }
169-
//
103+
104+
105+
170106
// #endregion
171-
//
107+
172108
// #region Templates Examples
173109
//
174110
// /// <summary>

SignNow.Net.Examples/Users/ChangeUserDetails.cs

+48-29
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,62 @@
11
using System.Threading.Tasks;
2-
using SignNow.Net.Model;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
33
using SignNow.Net.Model.Requests;
44

5-
namespace SignNow.Net.Examples.Users
5+
namespace SignNow.Net.Examples
66
{
7-
public static partial class UserExamples
7+
public partial class UserExamples
88
{
9-
/// <summary>
10-
/// Updates user information i.e. first name, last name
11-
/// </summary>
12-
/// <param name="firstname">new User firstname</param>
13-
/// <param name="lastname">new User lastname</param>
14-
/// <param name="oldPwd">Old User password</param>
15-
/// <param name="pwd">New User password</param>
16-
/// <param name="signNowContext">signNow container with services.</param>
17-
/// <returns></returns>
18-
public static async Task<UserUpdateResponse> ChangeUserDetails(string firstname, string lastname, string oldPwd, string pwd, SignNowContext signNowContext)
9+
[TestMethod]
10+
public async Task ChangeUserDetailsAsync()
1911
{
20-
var userUpdateOptions = new UpdateUserOptions
12+
// Get current user details
13+
var currentUser = await testContext.Users
14+
.GetCurrentUserAsync()
15+
.ConfigureAwait(false);
16+
17+
// Update user details
18+
var update = new UpdateUserOptions
2119
{
22-
FirstName = firstname,
23-
LastName = lastname,
24-
OldPassword = oldPwd,
25-
Password = pwd
20+
FirstName = currentUser.FirstName,
21+
LastName = currentUser.LastName + "Updated",
22+
OldPassword = credentials.Password,
23+
Password = credentials.Password
2624
};
2725

28-
return await signNowContext.Users.UpdateUserAsync(userUpdateOptions)
26+
var updatedUser = await testContext.Users
27+
.UpdateUserAsync(update)
2928
.ConfigureAwait(false);
30-
}
3129

32-
/// <summary>
33-
/// Sends password reset link via email example
34-
/// </summary>
35-
/// <param name="email">User email</param>
36-
/// <param name="signNowContext">signNow container with services.</param>
37-
/// <returns></returns>
38-
public static async Task SendsPasswordResetLink(string email, SignNowContext signNowContext)
39-
{
40-
await signNowContext.Users.SendPasswordResetLinkAsync(email)
30+
// check if user details were updated
31+
Assert.AreEqual(currentUser.FirstName, updatedUser.FirstName);
32+
Assert.AreNotEqual(currentUser.LastName, updatedUser.LastName);
33+
Assert.AreEqual(currentUser.LastName + "Updated", updatedUser.LastName);
34+
35+
// Revert user details back
36+
var revert = new UpdateUserOptions
37+
{
38+
FirstName = currentUser.FirstName,
39+
LastName = currentUser.LastName,
40+
OldPassword = credentials.Password,
41+
Password = credentials.Password
42+
};
43+
44+
var revertedUser = await testContext.Users
45+
.UpdateUserAsync(revert)
46+
.ConfigureAwait(false);
47+
48+
var lastUserInfo = await testContext.Users
49+
.GetCurrentUserAsync()
50+
.ConfigureAwait(false);
51+
52+
// check if user details were reverted
53+
Assert.AreEqual(currentUser.FirstName, lastUserInfo.FirstName);
54+
Assert.AreEqual(currentUser.LastName, lastUserInfo.LastName);
55+
Assert.AreEqual(currentUser.LastName, revertedUser.LastName);
56+
57+
// send user password reset email
58+
await testContext.Users
59+
.SendPasswordResetLinkAsync(currentUser.Email)
4160
.ConfigureAwait(false);
4261
}
4362
}

SignNow.Net.Examples/Users/CreateSignNowUser.cs

+22-28
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,39 @@
1+
using System;
12
using System.Threading.Tasks;
2-
using SignNow.Net.Model;
3+
using Microsoft.VisualStudio.TestTools.UnitTesting;
34
using SignNow.Net.Model.Requests;
45

5-
namespace SignNow.Net.Examples.Users
6+
namespace SignNow.Net.Examples
67
{
7-
public static partial class UserExamples
8+
[TestClass]
9+
public partial class UserExamples : ExamplesRunner
810
{
9-
/// <summary>
10-
/// Creates an account for a user example
11-
/// </summary>
12-
/// <param name="firstname">User firstname</param>
13-
/// <param name="lastname">User lastname</param>
14-
/// <param name="email">User email</param>
15-
/// <param name="password">User password</param>
16-
/// <param name="signNowContext">signNow container with services.</param>
17-
/// <returns>
18-
/// Response with: User identity, email
19-
/// </returns>
20-
public static async Task<UserCreateResponse> CreateSignNowUser(string firstname, string lastname, string email, string password, SignNowContext signNowContext)
11+
[TestMethod]
12+
public async Task CreateSignNowUserAsync()
2113
{
14+
var timestamp = (long)(DateTime.Now - UnixEpoch).TotalSeconds;
15+
var email = $"signnow.tutorial+create_user_test{timestamp}@gmail.com";
16+
2217
var userRequest = new CreateUserOptions
2318
{
2419
Email = email,
25-
FirstName = firstname,
26-
LastName = lastname,
27-
Password = password
20+
FirstName = "John",
21+
LastName = "Wick",
22+
Password = "password"
2823
};
2924

30-
return await signNowContext.Users
25+
// Create a new user
26+
var createUserResponse = await testContext.Users
3127
.CreateUserAsync(userRequest)
3228
.ConfigureAwait(false);
33-
}
3429

35-
/// <summary>
36-
/// Retrieve User Information example
37-
/// </summary>
38-
/// <param name="signNowContext">signNow container with services.</param>
39-
/// <returns></returns>
40-
public static async Task<User> RetrieveUserInformation(SignNowContext signNowContext)
41-
{
42-
return await signNowContext.Users.GetCurrentUserAsync()
30+
// Check if the user was created and not verified
31+
Assert.AreEqual(email, createUserResponse.Email);
32+
Assert.IsFalse(createUserResponse.Verified);
33+
34+
// Finally - send verification email to User
35+
await testContext.Users
36+
.SendVerificationEmailAsync(email)
4337
.ConfigureAwait(false);
4438
}
4539
}
+20-13
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Linq;
23
using System.Threading.Tasks;
3-
using SignNow.Net.Model;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting;
45

5-
namespace SignNow.Net.Examples.Users
6+
namespace SignNow.Net.Examples
67
{
7-
public static partial class UserExamples
8+
public partial class UserExamples
89
{
9-
/// <summary>
10-
/// Get User documents that were not modified yet example
11-
/// </summary>
12-
/// <param name="perPage">How many document objects to display per page in response.</param>
13-
/// <param name="token">Access token.</param>
14-
/// <returns></returns>
15-
public static async Task<IEnumerable<SignNowDocument>> GetUserDocuments(int perPage, SignNowContext signNowContext)
10+
[TestMethod]
11+
public async Task GetUserDocumentsAsync()
1612
{
17-
return await signNowContext.Users
18-
.GetUserDocumentsAsync(perPage)
13+
// Get user documents, first 25 documents
14+
var signNowDocuments = await testContext.Users
15+
.GetUserDocumentsAsync(perPage:25)
1916
.ConfigureAwait(false);
17+
18+
// Check if the documents are owned by the user
19+
var userDocuments = signNowDocuments.ToList();
20+
foreach (var document in userDocuments)
21+
{
22+
Assert.AreEqual(credentials.Login, document.Owner);
23+
}
24+
25+
Assert.IsNotNull(userDocuments.Count);
26+
Console.WriteLine($@"Total modified documents: {userDocuments.Count}");
2027
}
2128
}
2229
}
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Linq;
23
using System.Threading.Tasks;
3-
using SignNow.Net.Model;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting;
45

5-
namespace SignNow.Net.Examples.Users
6+
namespace SignNow.Net.Examples
67
{
7-
public static partial class UserExamples
8+
public partial class UserExamples
89
{
9-
/// <summary>
10-
/// Get User modified documents example
11-
/// </summary>
12-
/// <param name="perPage">How many document objects to display per page in response.</param>
13-
/// <param name="token">Access token.</param>
14-
/// <returns></returns>
15-
public static async Task<IEnumerable<SignNowDocument>> GetUserModifiedDocuments(int perPage, SignNowContext signNowContext)
10+
[TestMethod]
11+
public async Task GetUserModifiedDocumentsAsync()
1612
{
17-
return await signNowContext.Users
18-
.GetModifiedDocumentsAsync(perPage)
13+
// get user modified documents
14+
var signNowDocuments = await testContext.Users
15+
.GetModifiedDocumentsAsync(perPage:25)
1916
.ConfigureAwait(false);
17+
18+
// check if user is the owner of the modified documents
19+
var modifiedDocuments = signNowDocuments.ToList();
20+
foreach (var document in modifiedDocuments)
21+
{
22+
Assert.AreEqual(credentials.Login, document.Owner);
23+
}
24+
25+
Assert.IsNotNull(modifiedDocuments.Count);
26+
Console.WriteLine($@"Total modified documents: {modifiedDocuments.Count}");
2027
}
2128
}
2229
}

SignNow.Net.Examples/Users/SendVerificationEmailToUser.cs

-21
This file was deleted.

0 commit comments

Comments
 (0)