public void TestStepNotesTCXSerialization() { XmlDocument testDocument = new XmlDocument(); XmlNode database; XmlAttribute attribute; Workout placeholderWorkout = new Workout("Test", PluginMain.GetApplication().Logbook.ActivityCategories[0]); RegularStep regularStep = placeholderWorkout.Steps[0] as RegularStep; // Setup document testDocument.AppendChild(testDocument.CreateXmlDeclaration("1.0", "UTF-8", "no")); database = testDocument.CreateNode(XmlNodeType.Element, "TrainingCenterDatabase", null); testDocument.AppendChild(database); attribute = testDocument.CreateAttribute("xmlns", "xsi", GarminFitnessPlugin.Constants.xmlns); attribute.Value = "http://www.w3.org/2001/XMLSchema-instance"; database.Attributes.Append(attribute); // Regular step regularStep.Notes = "This is a note"; regularStep.Serialize(database, "stepNotesTest", testDocument); Assert.GreaterOrEqual(placeholderWorkout.STExtensions.Count, 1, "Missing step extension node for regular step note"); Assert.AreEqual(stepNotesExtensionResult1, placeholderWorkout.STExtensions[placeholderWorkout.STExtensions.Count - 1].OuterXml, "Invalid step notes serialization"); regularStep.Notes = "This is a new note"; regularStep.Serialize(database, "stepNotesTest", testDocument); Assert.GreaterOrEqual(placeholderWorkout.STExtensions.Count, 1, "Missing step extension node for regular step note"); Assert.AreEqual(stepNotesExtensionResult2, placeholderWorkout.STExtensions[placeholderWorkout.STExtensions.Count - 1].OuterXml, "Invalid step notes serialization"); // Repeat step RepeatStep repeatStep = new RepeatStep(placeholderWorkout); placeholderWorkout.Steps.AddStepToRoot(repeatStep); repeatStep.Notes = "This is a repeat note"; repeatStep.Serialize(database, "stepNotesTest", testDocument); Assert.GreaterOrEqual(placeholderWorkout.STExtensions.Count, 1, "Missing step extension node for repeat step note"); Assert.AreEqual(stepNotesExtensionResult3, placeholderWorkout.STExtensions[placeholderWorkout.STExtensions.Count - 2].OuterXml, "Invalid step notes serialization"); }
public void TestRepeatStepTCXSerialization() { XmlDocument testDocument = new XmlDocument(); XmlNode database; XmlAttribute attribute; Workout placeholderWorkout = new Workout("Test", PluginMain.GetApplication().Logbook.ActivityCategories[0]); RepeatStep step = new RepeatStep(placeholderWorkout); int resultPosition; placeholderWorkout.Steps.AddStepToRoot(step); placeholderWorkout.Steps.RemoveStep(placeholderWorkout.Steps[0]); // Setup document testDocument.AppendChild(testDocument.CreateXmlDeclaration("1.0", "UTF-8", "no")); database = testDocument.CreateNode(XmlNodeType.Element, "TrainingCenterDatabase", null); testDocument.AppendChild(database); attribute = testDocument.CreateAttribute("xmlns", "xsi", GarminFitnessPlugin.Constants.xmlns); attribute.Value = "http://www.w3.org/2001/XMLSchema-instance"; database.Attributes.Append(attribute); // Single child step.Serialize(database, "RepeatStepTest1", testDocument); resultPosition = testDocument.InnerXml.IndexOf(repeatStepTestResult1); Assert.GreaterOrEqual(resultPosition, 0, "Invalid step TCX serialization for repeat step with single child"); // Multiple children step.StepsToRepeat.Add(new RegularStep(placeholderWorkout)); step.Serialize(database, "RepeatStepTest2", testDocument); resultPosition = testDocument.InnerXml.IndexOf(repeatStepTestResult2); Assert.GreaterOrEqual(resultPosition, 0, "Invalid step TCX serialization for repeat step with multiple children"); // Nested repeat steps step.StepsToRepeat.Add(new RepeatStep(placeholderWorkout)); step.Serialize(database, "RepeatStepTest3", testDocument); resultPosition = testDocument.InnerXml.IndexOf(repeatStepTestResult3); Assert.GreaterOrEqual(resultPosition, 0, "Invalid step TCX serialization for repeat step with nested repeat child"); }