diff options
| author | Avi Levkovich <avi@twine-s.com> | 2019-02-21 17:34:53 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2019-02-21 17:34:53 +0200 |
| commit | d7c8a8e9a6320ade6098e0d8e182c7ada4e30a97 (patch) | |
| tree | 4f261cdd6c2f5a3336e09e775576fbd6bf353dd1 /Software/Visual_Studio/Tango.UnitTesting/MachineService/MachineStudio_Controller_TST.cs | |
| parent | 1b6e37351cde492bc27e48d4c53f6a69eea91052 (diff) | |
| parent | a5fde6c76b7c98c482d5fc069c371da5480c0bdf (diff) | |
| download | Tango-d7c8a8e9a6320ade6098e0d8e182c7ada4e30a97.tar.gz Tango-d7c8a8e9a6320ade6098e0d8e182c7ada4e30a97.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_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.cs | 78 |
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); + } + } +} |
