aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-02-25 11:02:07 +0200
committerShlomo Hecht <shlomo@twine-s.com>2019-02-25 11:02:07 +0200
commitb462fdd744f491b04137fd99863f6cb6c623cfa0 (patch)
tree2f69f8e953450a0452442c24f3809aec84ce7db0 /Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs
parenta8ddb23154fe5111c9509fa0a83dcc36adcba4ee (diff)
parent44a35db8a2929fb3f6aa56ed08185e066292f106 (diff)
downloadTango-b462fdd744f491b04137fd99863f6cb6c623cfa0.tar.gz
Tango-b462fdd744f491b04137fd99863f6cb6c623cfa0.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
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..21ab16307
--- /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.MachineService
+{
+ [TestClass]
+ [TestCategory("Machine Service - Machine Studio")]
+ public class MachineStudio_Controller_TST
+ {
+ private const string address = "http://localhost:1111";
+
+ [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);
+ }
+ }
+}