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.MachineService { [TestClass] [TestCategory("Machine Service - PPC")] public class PPC_Controller_TST { private const string address = "https://machineservice-test.twine-srv.com"; [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(() => { 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(() => { 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. Tango.MachineStudio.Common.Web.MachineStudioWebClient msClient = new Tango.MachineStudio.Common.Web.MachineStudioWebClient(address, null); var res6 = msClient.Login(new Tango.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(); } } }