blob: 8a126df2efdc5a25e83120ba01a2933d24ee93b6 (
plain)
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
|
using System;
using System.Security.Authentication;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Tango.BL;
using Tango.MachineStudio.Common.Web;
using Tango.Transport.Web;
using System.Linq;
namespace Tango.UnitTesting.Web
{
[TestClass]
[TestCategory("Machine Service - Machine Studio")]
public class MachineStudio_Controller_TST
{
private const string address = "http://localhost:51581";
[TestMethod]
public void Login_and_check_for_updates()
{
//First test the more primitive web clients.
IWebTransportClient client = new WebTransportClient();
var res1 = client.PostJson<LoginRequest, LoginResponse>($"{address}/api/MachineStudio/Login", new LoginRequest()
{
Email = "TestUser@twine-s.com",
Password = "ASJH_asdjkl1234",
Version = "1.0.0.0"
}).Result;
String token = res1.AccessToken;
client.AuthenticationToken = token;
var res2 = client.PostJson<CheckForUpdatesRequest, CheckForUpdatesResponse>($"{address}/api/MachineStudio/CheckForUpdates", new CheckForUpdatesRequest()
{
Version = "1.0.0.0"
}).ConfigureAwait(false).GetAwaiter().GetResult();
//Check updates are available..
Assert.IsTrue(res2.IsUpdateAvailable);
//Now check the dedicated machine studio client.
MachineStudioWebClient msClient = new MachineStudioWebClient(address, null);
//Should throw an exception without login first (no token specified..)
Assert.ThrowsException<AuthenticationException>(() =>
{
var res3 = msClient.CheckForUpdates(new CheckForUpdatesRequest()
{
Version = "1.0.0.0"
}).GetAwaiter().GetResult();
});
//Perform a login.
var res4 = msClient.Login(new LoginRequest()
{
Email = "TestUser@twine-s.com",
Password = "ASJH_asdjkl1234",
Version = "1.0.0.0"
}).Result;
//Validate the data source received.
using (ObservablesContext db = ObservablesContext.CreateDefault(res4.DataSource))
{
var user = db.Users.Single(x => x.Email.ToLower() == "TestUser@twine-s.com");
}
//Check updates are not available..
var res5 = msClient.CheckForUpdates(new CheckForUpdatesRequest()
{
Version = "100.0.0.0"
}).Result;
Assert.IsFalse(res5.IsUpdateAvailable);
}
}
}
|