aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.UnitTesting/MachineService
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-02-20 22:55:15 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-02-20 22:55:15 +0200
commit9447a8a09f87d6ea2cb62860021c595386668eec (patch)
treea02db15a1247587f14fedb6ccae76f79bd63afb3 /Software/Visual_Studio/Tango.UnitTesting/MachineService
parent17446569ca8d8dd00331da5926b938593c4b117f (diff)
downloadTango-9447a8a09f87d6ea2cb62860021c595386668eec.tar.gz
Tango-9447a8a09f87d6ea2cb62860021c595386668eec.zip
A lot of work !!!
Diffstat (limited to 'Software/Visual_Studio/Tango.UnitTesting/MachineService')
-rw-r--r--Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs78
-rw-r--r--Software/Visual_Studio/Tango.UnitTesting/MachineService/PPC_Controller_TST.cs95
2 files changed, 173 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);
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.UnitTesting/MachineService/PPC_Controller_TST.cs b/Software/Visual_Studio/Tango.UnitTesting/MachineService/PPC_Controller_TST.cs
new file mode 100644
index 000000000..23ab74f3b
--- /dev/null
+++ b/Software/Visual_Studio/Tango.UnitTesting/MachineService/PPC_Controller_TST.cs
@@ -0,0 +1,95 @@
+using System;
+using System.Security.Authentication;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Tango.BL;
+using Tango.Transport.Web;
+using System.Linq;
+using Tango.PPC.Common.Web;
+using Tango.Core.IO;
+
+namespace Tango.UnitTesting.Web
+{
+ [TestClass]
+ [TestCategory("Machine Service - PPC")]
+ public class PPC_Controller_TST
+ {
+ private const string address = "http://localhost:51581";
+
+ [TestMethod]
+ public void Login_and_setup()
+ {
+ //Now check the dedicated machine studio client.
+ PPCWebClient client = new PPCWebClient(address, null);
+
+ //Should throw an exception without login first (no token specified..)
+ Assert.ThrowsException<AuthenticationException>(() =>
+ {
+ var res1 = client.MachineSetup(new MachineSetupRequest()
+ {
+
+ }).GetAwaiter().GetResult();
+ });
+
+ //Perform a login with user mode.
+ var res2 = client.Login(new LoginRequest()
+ {
+ Mode = LoginMode.User,
+ Email = "TestUser@twine-s.com",
+ Password = "ASJH_asdjkl1234",
+ }).Result;
+
+ //Should throw exception about serial number not found.
+ Assert.ThrowsException<AuthenticationException>(() =>
+ {
+ var res3 = client.Login(new LoginRequest()
+ {
+ Mode = LoginMode.Machine,
+ SerialNumber = "NOT_EXISTING_SERIAL_NUMBER",
+ }).GetAwaiter().GetResult();
+ });
+
+ //Perform a login with machine mode.
+ var res4 = client.Login(new LoginRequest()
+ {
+ Mode = LoginMode.Machine,
+ SerialNumber = "0003",
+ }).Result;
+
+ //Should return setup information
+ var res5 = client.MachineSetup(new MachineSetupRequest()
+ {
+ SerialNumber = "0003",
+ }).GetAwaiter().GetResult();
+
+ //Now get DEV data source using the machine studio client in order to validate the setup information.
+ MachineStudio.Common.Web.MachineStudioWebClient msClient = new MachineStudio.Common.Web.MachineStudioWebClient(address, null);
+ var res6 = msClient.Login(new MachineStudio.Common.Web.LoginRequest()
+ {
+ Email = "TestUser@twine-s.com",
+ Password = "ASJH_asdjkl1234",
+ }).Result;
+
+ var dataSource = res6.DataSource;
+
+ using (ObservablesContext db = ObservablesContext.CreateDefault(dataSource))
+ {
+ var machine = db.Machines.Single(x => x.SerialNumber == "0003");
+
+ Assert.AreEqual(res5.IsDemo, machine.IsDemo);
+ Assert.AreEqual(res5.OSKey, machine.OsKey);
+ Assert.AreEqual(res5.SetupActivation, machine.SetupActivation);
+ Assert.AreEqual(res5.SetupFirmware, machine.SetupFirmware);
+ Assert.AreEqual(res5.SetupFPGA, machine.SetupFpga);
+ Assert.AreEqual(res5.SetupRemoteAssistance, machine.SetupRemoteAssistance);
+ Assert.AreEqual(res5.SetupUWF, machine.SetupUwf);
+ }
+
+
+ var tempFile = TemporaryManager.Default.CreateFile();
+ StorageBlobDownloader downloader = new StorageBlobDownloader(res5.BlobAddress, tempFile);
+ downloader.Download().Wait();
+
+ tempFile.Delete();
+ }
+ }
+}