Table of Contents [Hide/Show]
Unit Test Walk Through of Web Service Access Unit Test using Jetfire Web Service Utility Unit Test using the raw Web Service
[TestMethod] public void WsOAWA_CreateWrestlerUsingJfWS() { string error = ""; string auditGuid = null; // Create the Workspace and Club OawaRegistrationTests tests = new OawaRegistrationTests(); tests.OawaRegistration_CreateWorkspaceOawaClub(); // Start the Web Service and create a wrestler using (JfWS ws = new JfWS("http://Web_Service_Domain/JetfireWebService.asmx")) { // login George, the administrator if (!ws.Login("George", "", "Registration", ref error)) Assert.Fail("George Login 1 Failed: " + error); // Find the Club Workflows workflows = ws.GetWorkflowBySubject("OawaClub", " New OAWA Club", ref error); // Verify that club is returned Assert.IsTrue(workflows.Count > 0, error); Workflow club = null; // Get the actual club. 'club' contains methods and properties that are part of the club. if (!workflows.GetFirstWorkflow(ref club, ref error)) Assert.Fail(error); // Add a wrestler to the club workflows = ws.ExecuteCommand(club, "AddWrestler", ref error); if (workflows.Count < 1) Assert.Fail(error); Workflow wrestler = null; // The updated wrestler record is returned. Verify that there are no errors. if (!workflows.GetFirstWorkflow(ref wrestler, ref error)) Assert.Fail(error); Assert.AreEqual("OawaContact", wrestler.WorkflowClass, "Not an OawaContact"); // Save a property in the wrestler record TjDate date = new TjDate(new System.DateTime(1995, 12, 1)); wrestler.SetValue("FirstName", "George"); wrestler.SetValue("LastName", "Jones"); wrestler.SetValue("DOB", date.ToString(C.DateFormat)); if (!ws.SaveWorkflow(ref wrestler, ref error)) Assert.Fail(error); string dateValue = wrestler.GetValue("DOB"); Assert.AreEqual(date.ToString(C.DateFormat), dateValue); // Create audit for the registration WorkflowClass wClass = null; if (!ws.GetWorkflowClass(ref wClass, "OawaRegistrationAudit", ref error)) Assert.Fail(error); Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("Workflow", wrestler.Guid); parameters.Add("Workspace", wrestler.Workspace); workflows = ws.ExecuteCommand(wClass, "Create", parameters, ref error); Workflow audit = null; if (!workflows.GetFirstWorkflow(ref audit, ref error)) Assert.Fail(error); // Note: Parent name and Parent Phone are required if applicant is under 18. audit.SetValue("ApplicantName", "George Jones"); audit.SetValue("ParentName", "Sue Jones"); audit.SetValue("ParentPhone", "613-555-1212"); if (!ws.SaveWorkflow(ref audit, ref error)) Assert.Fail(error); auditGuid = audit.Guid; } // Verify that audit is saved to the database. Login to the website to verify. JetfireProfile jp = Init.UserJetfireProfile("George", ref error); Assert.AreEqual(String.Empty, error, error); using (NexusLogin login = Init.StartLinqStorage(jp, false)) { TjWorkflow audit = null; if (!Jf.FindWorkflow(login.Nexus, auditGuid, ref audit)) Assert.Fail("Cannot find audit workflow"); Assert.AreEqual(Jf.GetValue(audit, "ApplicantName"), "George Jones", "ApplicantName does not match"); Assert.AreEqual(Jf.GetValue(audit, "ParentName"), "Sue Jones", "ParentName does not match"); Assert.AreEqual(Jf.GetValue(audit, "ParentPhone"), "613-555-1212", "ParentPhone does not match"); } }
[TestMethod] public void WsOAWA_CreateWrestlerUsingWebService() { string error = ""; // Create the Workspace and Club OawaRegistrationTests tests = new OawaRegistrationTests(); tests.OawaRegistration_CreateWorkspaceOawaClub(); // Start the Web Service and create a wrestler using (TrackerRealm.Jetfire.WindowsUtil.Jetfire.JetfireWebService ws = new TrackerRealm.Jetfire.WindowsUtil.Jetfire.JetfireWebService()) { // login George, the administrator string xml = ws.Login("George", "", "Registration"); // Response should be: // Note: NexusKey is unique for every logon. // <?xml version='1.0' encoding='utf-8' ?> // <LoginResponse xmlns="http://schemas.Jetfire.ca/LoginResponse"> // <LoginKey NexusKey="49c55cb8-908c-4d2b-ba0b-70cfcbe05f16" Subscription="Registration" Roles="Admin" Message="Successful Login"/> // </LoginResponse> // Dig out nexusKey - code to be written string nexusKey = "49c55cb8-908c-4d2b-ba0b-70cfcbe05f16"; // Find the Club in the Jetfire Nexus xml = ws.GetWorkflowBySubject(nexusKey, "OawaClub", "My Club"); // Response is: // <?xml version='1.0' encoding='utf-8' ?> // <Workflows xmlns="http://schemas.Jetfire.ca/Workflows"> // <Workflow> // <Properties> // <Property Name="Subject" Value="My Club" /> // <Property Name="Guid" Value="12c55cb8-128c-122b-1a0b-12cfcbe05f16"/> // <-- snip (more properties) --> // </Properties> // <Methods></Methods> // </Workflow> // </Workflows> // Dig out club - code to be written (this is a Windows Util class that is used) Workflow club = new Workflow(xml, ref error); if (club == null) Assert.Fail("Error in getting OAWA Club: " + error); // Create xml to execute a command against a workflow identified by the Guid string command = @"<?xml version='1.0' encoding='utf-8' ?> <Workflows xmlns=""http://schemas.Jetfire.ca/Workflows\""> <Workflow> <Properties> <Property Name=""Guid"" Value=""12c55cb8-128c-122b-1a0b-12cfcbe05f16"" /> </Properties> <Methods> <Method Name=""AddWrestler"" Value=""AddWrestler"" /> </Methods> </Workflow> </Workflows>"; // Add a wrestler to the club xml = ws.ExecuteCommand(nexusKey, command); // Response should be: // <?xml version='1.0' encoding='utf-8' ?> // <Workflows xmlns="http://schemas.Jetfire.ca/Workflows"> // <Workflow> // <Properties> // <Property Name="Subject" Value=" OAWA Contact" /> // <Property Name="Guid" Value="67c55cb8-678c-672b-1a0b-67cfcbe05f16"/> // <-- snip (more properties) --> // </Properties> // <Methods></Methods> // </Workflow> // </Workflows> Workflow wrestler = new Workflow(xml, ref error); if (wrestler == null) Assert.Fail("Error in retrieving OAWA Contact: " + error); // Save a property in the wrestler record System.DateTime date = new System.DateTime(1995, 12, 1); // Create xml for Workflow with Properties being saved. // In this case, update FirstName, LastName, and DOB - the Guid identifies the workflow. wrestler.SetValue("DOB", date.ToString(C.DateFormat)); // Create the xml for updating the properties xml = @"<?xml version='1.0' encoding='utf-8' ?> <Workflows xmlns=""http://schemas.Jetfire.ca/Workflows""> <Workflow> <Properties> <Property Name=""FirstName"" Value=""George"" /> <Property Name=""LastName"" Value=""Jones"" /> <Property Name=""DOB"" Value=""" + date.ToString(C.DateFormat) + @""" /> <Property Name=""Guid"" Value=""67c55cb8-678c-672b-1a0b-67cfcbe05f16"" /> </Properties> </Workflow> </Workflows>"; xml = ws.SaveWorkflow(nexusKey, xml); wrestler = new Workflow(xml, ref error); if (wrestler == null) Assert.Fail("Error updating the wrestler data: " + error); // Verify the DOB is saved correctly. string dateValue = wrestler.GetValue("DOB"); Assert.AreEqual(date.ToString(C.DateFormat), dateValue); } }