public void TestProjectStartedEventArgs() { // Test with reasonable values ProjectStartedEventArgs genericEvent = new ProjectStartedEventArgs(8, "Message", "HelpKeyword", "ProjectFile", null, null, null, new BuildEventContext(7, 8, 9, 10)); genericEvent.BuildEventContext = new BuildEventContext(5, 4, 3, 2); // Serialize genericEvent.WriteToStream(_writer); long streamWriteEndPosition = _stream.Position; // Deserialize and Verify _stream.Position = 0; ProjectStartedEventArgs newGenericEvent = new ProjectStartedEventArgs(-1, null, null, null, null, null, null, null); newGenericEvent.CreateFromStream(_reader, _eventArgVersion); long streamReadEndPosition = _stream.Position; Assert.IsTrue(streamWriteEndPosition == streamReadEndPosition, "Stream End Positions Should Match"); VerifyGenericEventArg(genericEvent, newGenericEvent); VerifyProjectStartedEvent(genericEvent, newGenericEvent); // Test with empty strings _stream.Position = 0; genericEvent = new ProjectStartedEventArgs(-1, string.Empty, string.Empty, string.Empty, string.Empty, null, null, null); genericEvent.BuildEventContext = new BuildEventContext(5, 4, 3, 2); // Serialize genericEvent.WriteToStream(_writer); streamWriteEndPosition = _stream.Position; // Deserialize and Verify _stream.Position = 0; newGenericEvent = new ProjectStartedEventArgs(-1, null, null, null, null, null, null, null); newGenericEvent.CreateFromStream(_reader, _eventArgVersion); streamReadEndPosition = _stream.Position; Assert.IsTrue(streamWriteEndPosition == streamReadEndPosition, "Stream end positions should be equal"); VerifyGenericEventArg(genericEvent, newGenericEvent); VerifyProjectStartedEvent(genericEvent, newGenericEvent); // Test with null strings _stream.Position = 0; genericEvent = new ProjectStartedEventArgs(-1, null, null, null, null, null, null, null); genericEvent.BuildEventContext = null; // Serialize genericEvent.WriteToStream(_writer); streamWriteEndPosition = _stream.Position; // Deserialize and Verify _stream.Position = 0; newGenericEvent = new ProjectStartedEventArgs(4, "Something", "Something", "Something", null, null, null, null); newGenericEvent.CreateFromStream(_reader, _eventArgVersion); streamReadEndPosition = _stream.Position; Assert.IsTrue(streamWriteEndPosition == streamReadEndPosition, "Stream End Positions Should Match"); VerifyGenericEventArg(genericEvent, newGenericEvent); VerifyProjectStartedEvent(genericEvent, newGenericEvent); }
public void TestProjectStartedPropertySerialization() { // Create a list of test properties which should make it through serialization List<DictionaryEntry> propertyList = new List<DictionaryEntry>(); propertyList.Add(new DictionaryEntry("TeamBuildOutDir", "c:\\outdir")); propertyList.Add(new DictionaryEntry("Configuration", "BuildConfiguration")); propertyList.Add(new DictionaryEntry("Platform", "System Platform")); propertyList.Add(new DictionaryEntry("OutDir", "myOutDir")); propertyList.Add(new DictionaryEntry("WorkSpaceName", " MyWorkspace")); propertyList.Add(new DictionaryEntry("WorkSpaceOwner", "The workspace owner")); propertyList.Add(new DictionaryEntry("IAmBlank", string.Empty)); ProjectStartedEventArgs genericEvent = new ProjectStartedEventArgs(8, "Message", "HelpKeyword", "ProjectFile", null, propertyList, null, new BuildEventContext(7, 8, 9, 10)); genericEvent.BuildEventContext = new BuildEventContext(7, 8, 9, 10); // Serialize genericEvent.WriteToStream(_writer); long streamWriteEndPosition = _stream.Position; // Deserialize and Verify _stream.Position = 0; ProjectStartedEventArgs newGenericEvent = new ProjectStartedEventArgs(-1, null, null, null, null, null, null, null); newGenericEvent.CreateFromStream(_reader, _eventArgVersion); long streamReadEndPosition = _stream.Position; Assert.IsTrue(streamWriteEndPosition == streamReadEndPosition, "Stream End Positions Should Match"); Assert.IsNotNull(newGenericEvent.Properties, "Expected Properties to not be null"); // Create a list of all of the dictionaryEntries which were deserialized List<DictionaryEntry> entryList = new List<DictionaryEntry>(); foreach (DictionaryEntry entry in newGenericEvent.Properties) { entryList.Add(entry); } // Verify that each of the items in propertyList is inside of the deserialized entryList. AssertDictionaryEntry(entryList, propertyList); }