コード例 #1
0
        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");
        }
コード例 #2
0
        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");
        }