Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/tests/UnitTests/MonoDevelop.Projects/DomPersistenceTests.cs')
-rw-r--r--main/tests/UnitTests/MonoDevelop.Projects/DomPersistenceTests.cs457
1 files changed, 0 insertions, 457 deletions
diff --git a/main/tests/UnitTests/MonoDevelop.Projects/DomPersistenceTests.cs b/main/tests/UnitTests/MonoDevelop.Projects/DomPersistenceTests.cs
deleted file mode 100644
index 06238256eb..0000000000
--- a/main/tests/UnitTests/MonoDevelop.Projects/DomPersistenceTests.cs
+++ /dev/null
@@ -1,457 +0,0 @@
-//
-// DomPersistenceTests.cs
-//
-// Author:
-// Mike Krüger <mkrueger@novell.com>
-//
-// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.IO;
-using NUnit.Framework;
-using MonoDevelop.Projects.Dom;
-using MonoDevelop.Projects.Dom.Serialization;
-
-namespace MonoDevelop.Projects.DomTests
-{
- [TestFixture()]
- public class DomPersistenceTests : UnitTests.TestBase
- {
-
- [Test()]
- public void ReadWriteLocationTest ()
- {
- DomLocation input = new DomLocation (3, 9);
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, null, input);
- byte[] bytes = ms.ToArray ();
-
- DomLocation result = DomPersistence.ReadLocation (CreateReader (bytes), null);
- Assert.AreEqual (3, result.Line);
- Assert.AreEqual (9, result.Column);
- }
-
- [Test()]
- public void ReadWriteRegionTest ()
- {
- DomRegion input = new DomRegion (1, 2, 3, 4);
-
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomRegion result = DomPersistence.ReadRegion (CreateReader (bytes), DefaultNameDecoder);
- Assert.AreEqual (1, result.Start.Line);
- Assert.AreEqual (2, result.Start.Column);
- Assert.AreEqual (3, result.End.Line);
- Assert.AreEqual (4, result.End.Column);
- }
-
-
- [Test()]
- public void ReadWriteFieldTest ()
- {
- DomField input = new DomField ();
- input.Name = "TestField";
- input.Location = new DomLocation (5, 10);
- input.Documentation = "testDocumentation";
- input.Modifiers = Modifiers.Static;
- input.ReturnType = new DomReturnType ("System.String");
-
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomField result = DomPersistence.ReadField (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual ("TestField", result.Name);
- Assert.AreEqual ("testDocumentation", result.Documentation);
- Assert.AreEqual (new DomLocation (5, 10), result.Location);
- Assert.AreEqual (Modifiers.Static, result.Modifiers);
- Assert.AreEqual ("System.String", result.ReturnType.FullName);
- }
-
- [Test()]
- public void ReadWriteFieldTest2 ()
- {
- DomField input = new DomField ();
- input.Name = null;
- input.Location = DomLocation.Empty;
- input.Documentation = null;
- input.Modifiers = Modifiers.None;
- input.ReturnType = null;
-
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomField result = DomPersistence.ReadField (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual (null, result.Name);
- Assert.AreEqual (null, result.Documentation);
- Assert.AreEqual (DomLocation.Empty, result.Location);
- Assert.AreEqual (Modifiers.None, result.Modifiers);
- Assert.AreEqual (null, result.ReturnType);
- }
-
- [Test()]
- public void ReadWriteReturnTypeTest ()
- {
- DomReturnType input = new DomReturnType ();
- input.Name = "Test";
- input.Namespace = "Namespace";
- input.ArrayDimensions = 5;
- input.IsByRef = true;
- input.IsNullable = true;
- input.PointerNestingLevel = 666;
- input.AddTypeParameter (new DomReturnType ("System.String"));
- input.AddTypeParameter (new DomReturnType ("System.Int32"));
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- IReturnType result = DomPersistence.ReadReturnType (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual ("Test", result.Name);
- Assert.AreEqual ("Namespace", result.Namespace);
- Assert.AreEqual ("Namespace.Test", result.FullName);
- Assert.AreEqual (5, result.ArrayDimensions);
- Assert.AreEqual (true, result.IsByRef);
- Assert.AreEqual (true, result.IsNullable);
- Assert.AreEqual ("System.String", result.GenericArguments[0].FullName);
- Assert.AreEqual ("System.Int32", result.GenericArguments[1].FullName);
- }
-
- [Test()]
- public void ReadWriteMethodTest ()
- {
- DomMethod input = new DomMethod ();
- input.Name = "Test";
- input.MethodModifier = MethodModifier.IsConstructor;
- input.Add (new DomParameter (input, "par1", DomReturnType.Void));
- input.AddTypeParameter (new TypeParameter ("T"));
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomMethod result = DomPersistence.ReadMethod (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual ("Test", result.Name);
- Assert.AreEqual (true, result.IsConstructor);
- Assert.AreEqual ("par1", result.Parameters [0].Name);
- Assert.AreEqual ("Void", result.Parameters [0].ReturnType.Name);
- Assert.AreEqual (1, result.TypeParameters.Count);
- Assert.AreEqual ("T", result.TypeParameters [0].Name);
- }
-
- [Test()]
- public void ReadWriteDelegateTest ()
- {
- DomType input = DomType.CreateDelegate (null, "TestDelegate", new DomLocation (10, 10), DomReturnType.Void, new List<IParameter> ());
-
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomType result = DomPersistence.ReadType (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual ("TestDelegate", result.Name);
- Assert.AreEqual (ClassType.Delegate, result.ClassType);
- }
-
- [Test()]
- public void ReadWritePropertyTest ()
- {
- DomProperty input = new DomProperty ();
- input.Name = "Test";
- input.PropertyModifier = PropertyModifier.IsIndexer | PropertyModifier.HasGet | PropertyModifier.HasSet;
-
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomProperty result = DomPersistence.ReadProperty (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual ("Test", result.Name);
- Assert.AreEqual (true, result.IsIndexer);
- Assert.AreEqual (true, result.HasGet);
- Assert.AreEqual (true, result.HasSet);
- }
-
- [Test()]
- public void ReadWriteEventTest ()
- {
- DomEvent input = new DomEvent ();
- input.Name = "Test";
- input.AddMethod = new DomMethod ("AddMethod", Modifiers.New, MethodModifier.None, DomLocation.Empty, DomRegion.Empty);
- input.RemoveMethod = new DomMethod ("RemoveMethod", Modifiers.New, MethodModifier.None, DomLocation.Empty, DomRegion.Empty);
- input.RaiseMethod = new DomMethod ("RaiseMethod", Modifiers.New, MethodModifier.None, DomLocation.Empty, DomRegion.Empty);
-
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomEvent result = DomPersistence.ReadEvent (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual ("Test", result.Name);
- Assert.AreEqual ("AddMethod", result.AddMethod.Name);
- Assert.AreEqual ("RemoveMethod", result.RemoveMethod.Name);
- Assert.AreEqual ("RaiseMethod", result.RaiseMethod.Name);
- }
-
- [Test()]
- public void ReadWriteTypeTest ()
- {
- DomType input = new DomType ();
- input.Name = "Test";
- input.ClassType = ClassType.Struct;
- input.BaseType = new DomReturnType ("BaseClass");
-
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomType result = DomPersistence.ReadType (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual ("Test", result.Name);
- Assert.AreEqual (ClassType.Struct, result.ClassType);
- Assert.AreEqual ("BaseClass", result.BaseType.Name);
- }
-
- [Test()]
- public void ReadWriteTypeTestComplex ()
- {
- DomType input = new DomType ();
-
- input.Name = "Test";
- input.ClassType = ClassType.Struct;
- input.BaseType = new DomReturnType ("BaseClass");
- input.AddInterfaceImplementation (new DomReturnType ("Interface1"));
- input.AddInterfaceImplementation (new DomReturnType ("Interface2"));
-
- input.Add (new DomMethod ("TestMethod", Modifiers.None, MethodModifier.None, DomLocation.Empty, DomRegion.Empty));
- input.Add (new DomMethod (".ctor", Modifiers.None, MethodModifier.IsConstructor, DomLocation.Empty, DomRegion.Empty));
-
- input.Add (new DomField ("TestField", Modifiers.None, DomLocation.Empty, DomReturnType.Void));
- input.Add (new DomProperty ("TestProperty", Modifiers.None, DomLocation.Empty, DomRegion.Empty, DomReturnType.Void));
- input.Add (new DomEvent ("TestEvent", Modifiers.None, DomLocation.Empty, DomReturnType.Void));
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, input);
- byte[] bytes = ms.ToArray ();
-
- DomType result = DomPersistence.ReadType (CreateReader (bytes), DefaultNameDecoder, null);
- Assert.AreEqual ("Test", result.Name);
- Assert.AreEqual (ClassType.Struct, result.ClassType);
- Assert.AreEqual ("BaseClass", result.BaseType.Name);
- Assert.AreEqual (1, result.MethodCount);
- Assert.AreEqual (1, result.ConstructorCount);
- Assert.AreEqual (1, result.FieldCount);
- Assert.AreEqual (1, result.PropertyCount);
- Assert.AreEqual (1, result.EventCount);
-
- }
-
- [Test()]
- public void ReadWriteAttributeTest ()
- {
- DomAttribute attr = new DomAttribute ();
-
- CodePropertyReferenceExpression exp1 = new CodePropertyReferenceExpression ();
- exp1.TargetObject = new CodeTypeReferenceExpression ("SomeType");
- exp1.PropertyName = "SomeProperty";
-
- CodeTypeOfExpression exp2 = new CodeTypeOfExpression ("SomeTypeOf");
-
- CodeBinaryOperatorExpression exp3 = new CodeBinaryOperatorExpression ();
- exp3.Left = new CodePrimitiveExpression ("one");
- exp3.Right = new CodePrimitiveExpression ("two");
- exp3.Operator = CodeBinaryOperatorType.Add;
-
- CodePrimitiveExpression exp4 = new CodePrimitiveExpression (37);
-
- attr.AddPositionalArgument (exp1);
- attr.AddPositionalArgument (exp2);
- attr.AddPositionalArgument (exp3);
- attr.AddPositionalArgument (exp4);
-
- MemoryStream ms = new MemoryStream ();
- BinaryWriter writer = new BinaryWriter (ms);
- DomPersistence.Write (writer, DefaultNameEncoder, attr);
- byte[] bytes = ms.ToArray ();
- DomAttribute result = DomPersistence.ReadAttribute (CreateReader (bytes), DefaultNameDecoder, null);
-
- Assert.AreEqual (4, result.PositionalArguments.Count);
-
- Assert.AreEqual (typeof(CodePropertyReferenceExpression), result.PositionalArguments [0].GetType ());
- CodePropertyReferenceExpression rexp1 = (CodePropertyReferenceExpression) result.PositionalArguments [0];
- Assert.AreEqual (typeof(CodeTypeReferenceExpression), rexp1.TargetObject.GetType ());
- Assert.AreEqual ("SomeType", ((CodeTypeReferenceExpression)rexp1.TargetObject).Type.BaseType);
- Assert.AreEqual ("SomeProperty", rexp1.PropertyName);
-
- Assert.AreEqual (typeof(CodeTypeOfExpression), result.PositionalArguments [1].GetType ());
- Assert.AreEqual ("SomeTypeOf", ((CodeTypeOfExpression)result.PositionalArguments [1]).Type.BaseType);
-
- Assert.AreEqual (typeof(CodeBinaryOperatorExpression), result.PositionalArguments [2].GetType ());
- CodeBinaryOperatorExpression rexp3 = (CodeBinaryOperatorExpression) result.PositionalArguments [2];
- Assert.AreEqual (typeof(CodePrimitiveExpression), rexp3.Left.GetType ());
- Assert.AreEqual ("one", ((CodePrimitiveExpression)rexp3.Left).Value);
- Assert.AreEqual (typeof(CodePrimitiveExpression), rexp3.Right.GetType ());
- Assert.AreEqual ("two", ((CodePrimitiveExpression)rexp3.Right).Value);
-
- Assert.AreEqual (typeof(CodePrimitiveExpression), result.PositionalArguments [3].GetType ());
- Assert.AreEqual (37, ((CodePrimitiveExpression)result.PositionalArguments [3]).Value);
- }
-
- static BinaryReader CreateReader (byte[] bytes)
- {
- return new BinaryReader (new MemoryStream (bytes));
- }
-
-// Doesn't work: ?
-// byte[] Write<T> (T input)
-// {
-// MemoryStream ms = new MemoryStream ();
-// BinaryWriter writer = new BinaryWriter (ms);
-// DomPersistence.Write (writer, null, input);
-// return ms.ToArray ();
-// }
-
-
- static StringNameTable DefaultNameEncoder;
- static StringNameTable DefaultNameDecoder;
-
- static DomPersistenceTests ()
- {
- DefaultNameEncoder = new StringNameTable (sharedNameTable);
- DefaultNameDecoder = new StringNameTable (sharedNameTable);
- }
-
- static readonly string[] sharedNameTable = new string[] {
- "", // 505195
- "System.Void", // 116020
- "To be added", // 78598
- "System.Int32", // 72669
- "System.String", // 72097
- "System.Object", // 48530
- "System.Boolean", // 46200
- ".ctor", // 39938
- "System.IntPtr", // 35184
- "To be added.", // 19082
- "value", // 11906
- "System.Byte", // 8524
- "To be added: an object of type 'string'", // 7928
- "e", // 7858
- "raw", // 7830
- "System.IAsyncResult", // 7760
- "System.Type", // 7518
- "name", // 7188
- "object", // 6982
- "System.UInt32", // 6966
- "index", // 6038
- "To be added: an object of type 'int'", // 5196
- "System.Int64", // 4166
- "callback", // 4158
- "System.EventArgs", // 4140
- "method", // 4030
- "System.Enum", // 3980
- "value__", // 3954
- "Invoke", // 3906
- "result", // 3856
- "System.AsyncCallback", // 3850
- "System.MulticastDelegate", // 3698
- "BeginInvoke", // 3650
- "EndInvoke", // 3562
- "node", // 3416
- "sender", // 3398
- "context", // 3310
- "System.EventHandler", // 3218
- "System.Double", // 3206
- "type", // 3094
- "x", // 3056
- "System.Single", // 2940
- "data", // 2930
- "args", // 2926
- "System.Char", // 2813
- "Gdk.Key", // 2684
- "ToString", // 2634
- "'a", // 2594
- "System.Drawing.Color", // 2550
- "y", // 2458
- "To be added: an object of type 'object'", // 2430
- "System.DateTime", // 2420
- "message", // 2352
- "GLib.GType", // 2292
- "o", // 2280
- "a <see cref=\"T:System.Int32\" />", // 2176
- "path", // 2062
- "obj", // 2018
- "Nemerle.Core.list`1", // 1950
- "System.Windows.Forms", // 1942
- "System.Collections.ArrayList", // 1918
- "a <see cref=\"T:System.String\" />", // 1894
- "key", // 1868
- "Add", // 1864
- "arg0", // 1796
- "System.IO.Stream", // 1794
- "s", // 1784
- "arg1", // 1742
- "provider", // 1704
- "System.UInt64", // 1700
- "System.Drawing.Rectangle", // 1684
- "System.IFormatProvider", // 1684
- "gch", // 1680
- "System.Exception", // 1652
- "Equals", // 1590
- "System.Drawing.Pen", // 1584
- "count", // 1548
- "System.Collections.IEnumerator", // 1546
- "info", // 1526
- "Name", // 1512
- "System.Attribute", // 1494
- "gtype", // 1470
- "To be added: an object of type 'Type'", // 1444
- "System.Collections.Hashtable", // 1416
- "array", // 1380
- "System.Int16", // 1374
- "Gtk", // 1350
- "System.ComponentModel.ITypeDescriptorContext", // 1344
- "System.Collections.ICollection", // 1330
- "Dispose", // 1330
- "Gtk.Widget", // 1326
- "System.Runtime.Serialization.StreamingContext", // 1318
- "Nemerle.Compiler.Parsetree.PExpr", // 1312
- "System.Guid", // 1310
- "i", // 1302
- "Gtk.TreeIter", // 1300
- "text", // 1290
- "System.Runtime.Serialization.SerializationInfo", // 1272
- "state", // 1264
- "Remove" // 1256
- };
- }
-}