public void TestGenerateAssemblyFile_WithMethod_OptionsAreAsSpecified() { var name = new AssemblyName(MethodBase.GetCurrentMethod().Name); var target = new SerializerGenerator(typeof(GeneratorTestObject), name); target.Method = SerializationMethod.Map; var filePath = Path.GetFullPath("." + Path.DirectorySeparatorChar + name.Name + ".dll"); target.GenerateAssemblyFile(); // Assert is not polluted. Assert.That(SerializationContext.Default.ContainsSerializer(typeof(GeneratorTestObject)), Is.False); try { TestOnWorkerAppDomain( filePath, PackerCompatibilityOptions.Classic, new byte[] { ( byte )'A' }, new byte[] { MessagePackCode.MinimumFixedMap + 1, MessagePackCode.MinimumFixedRaw + 3, ( byte )'V', ( byte )'a', ( byte )'l', MessagePackCode.MinimumFixedRaw + 1, ( byte )'A' }, TestType.GeneratorTestObject ); } finally { File.Delete(filePath); } }
public void TestGenerateAssemblyFile_WithDirectory_DllIsGeneratedOnSpecifiedDirectory() { var name = new AssemblyName(MethodBase.GetCurrentMethod().Name); var target = new SerializerGenerator(typeof(GeneratorTestObject), name); var directory = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); target.GenerateAssemblyFile(directory); // Assert is not polluted. Assert.That(SerializationContext.Default.ContainsSerializer(typeof(GeneratorTestObject)), Is.False); try { TestOnWorkerAppDomain( Path.Combine(directory, name.Name + ".dll"), PackerCompatibilityOptions.Classic, new byte[] { ( byte )'A' }, new byte[] { MessagePackCode.MinimumFixedArray + 1, MessagePackCode.MinimumFixedRaw + 1, ( byte )'A' }, TestType.GeneratorTestObject ); } finally { Directory.Delete(directory, true); } }
public void TestComplexType_ChildGeneratorsAreContainedAutomatically() { var name = new AssemblyName(MethodBase.GetCurrentMethod().Name); var target = new SerializerGenerator(typeof(RootGeneratorTestObject), name); var directory = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); target.GenerateAssemblyFile(directory); // Assert is not polluted. Assert.That(SerializationContext.Default.ContainsSerializer(typeof(RootGeneratorTestObject)), Is.False); try { TestOnWorkerAppDomain( Path.Combine(directory, "." + Path.DirectorySeparatorChar + name.Name + ".dll"), PackerCompatibilityOptions.Classic, new byte[] { ( byte )'A' }, new byte[] { MessagePackCode.MinimumFixedArray + 2, MessagePackCode.MinimumFixedArray + 1, MessagePackCode.MinimumFixedRaw + 1, ( byte )'A', MessagePackCode.NilValue }, TestType.RootGeneratorTestObject ); } finally { Directory.Delete(directory, true); } }
public void TestGenerateAssemblyFile_WithDirectory_DllIsGeneratedOnSpecifiedDirectory() { var name = new AssemblyName( MethodBase.GetCurrentMethod().Name ); var target = new SerializerGenerator( typeof( GeneratorTestObject ), name ); var directory = Path.Combine( Path.GetTempPath(), Guid.NewGuid().ToString() ); target.GenerateAssemblyFile( directory ); // Assert is not polluted. Assert.That( SerializationContext.Default.ContainsSerializer( typeof( GeneratorTestObject ) ), Is.False ); try { TestOnWorkerAppDomain( Path.Combine( directory, name.Name + ".dll" ), PackerCompatibilityOptions.Classic, new byte[] { ( byte )'A' }, new byte[] { MessagePackCode.MinimumFixedArray + 1, MessagePackCode.MinimumFixedRaw + 1, ( byte )'A' }, TestType.GeneratorTestObject ); } finally { Directory.Delete( directory, true ); } }
public void TestGenerateAssemblyFile_WithDefault_DllIsGeneratedOnAppBase() { var name = new AssemblyName( MethodBase.GetCurrentMethod().Name ); var target = new SerializerGenerator( typeof( GeneratorTestObject ), name ); var filePath = Path.GetFullPath( "." + Path.DirectorySeparatorChar + name.Name + ".dll" ); target.GenerateAssemblyFile(); // Assert is not polluted. Assert.That( SerializationContext.Default.ContainsSerializer( typeof( GeneratorTestObject ) ), Is.False ); try { TestOnWorkerAppDomain( filePath, PackerCompatibilityOptions.Classic, new byte[] { ( byte )'A' }, new byte[] { MessagePackCode.MinimumFixedArray + 1, MessagePackCode.MinimumFixedRaw + 1, ( byte )'A' }, TestType.GeneratorTestObject ); } finally { File.Delete( filePath ); } }
public void TestGenerateAssemblyFile_ComplexType_MultipleTypes() { var name = new AssemblyName( MethodBase.GetCurrentMethod().Name ); var target = new SerializerGenerator( name ); target.TargetTypes.Add( typeof( GeneratorTestObject ) ); target.TargetTypes.Add( typeof( AnotherGeneratorTestObject ) ); var directory = Path.Combine( Path.GetTempPath(), Guid.NewGuid().ToString() ); target.GenerateAssemblyFile( directory ); // Assert is not polluted. Assert.That( SerializationContext.Default.ContainsSerializer( typeof( GeneratorTestObject ) ), Is.False ); Assert.That( SerializationContext.Default.ContainsSerializer( typeof( AnotherGeneratorTestObject ) ), Is.False ); try { TestOnWorkerAppDomainForMultiple( Path.Combine( directory, "." + Path.DirectorySeparatorChar + name.Name + ".dll" ), PackerCompatibilityOptions.Classic, new byte[] { ( byte )'A' }, new byte[] { MessagePackCode.MinimumFixedArray + 1, MessagePackCode.MinimumFixedRaw + 1, ( byte ) 'A', }, new byte[] { ( byte )'B' }, new byte[] { MessagePackCode.MinimumFixedArray + 1, MessagePackCode.MinimumFixedRaw + 1, ( byte ) 'B', } ); } finally { Directory.Delete( directory, true ); } }