aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs')
-rw-r--r--Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs78
1 files changed, 78 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs b/Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs
new file mode 100644
index 000000000..8a126df2e
--- /dev/null
+++ b/Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs
@@ -0,0 +1,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);
+ }
+ }
+}