1 // Copyright (c) Microsoft. All rights reserved. 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 4 using System; 5 using System.IO; 6 using Microsoft.Build.Framework; 7 using Microsoft.Build.Exceptions; 8 using System.Text.RegularExpressions; 9 using Xunit; 10 using System.Runtime.Serialization.Formatters.Binary; 11 12 namespace Microsoft.Build.UnitTests 13 { 14 public class InternalLoggerExceptionTests 15 { 16 /// <summary> 17 /// Verify I implemented ISerializable correctly 18 /// </summary> 19 [Fact] SerializeDeserialize()20 public void SerializeDeserialize() 21 { 22 InternalLoggerException e = new InternalLoggerException( 23 "message", 24 new Exception("innerException"), 25 new BuildStartedEventArgs("evMessage", "evHelpKeyword"), 26 "errorCode", 27 "helpKeyword", 28 false); 29 30 using (MemoryStream memstr = new MemoryStream()) 31 { 32 BinaryFormatter frm = new BinaryFormatter(); 33 34 frm.Serialize(memstr, e); 35 memstr.Position = 0; 36 37 InternalLoggerException e2 = (InternalLoggerException)frm.Deserialize(memstr); 38 39 Assert.Equal(e.BuildEventArgs.Message, e2.BuildEventArgs.Message); 40 Assert.Equal(e.BuildEventArgs.HelpKeyword, e2.BuildEventArgs.HelpKeyword); 41 Assert.Equal(e.ErrorCode, e2.ErrorCode); 42 Assert.Equal(e.HelpKeyword, e2.HelpKeyword); 43 Assert.Equal(e.Message, e2.Message); 44 Assert.Equal(e.InnerException.Message, e2.InnerException.Message); 45 } 46 } 47 } 48 } 49