Browse Source

Add unit test for cyclic constants.

newNRvisualizers
Mike Krüger 13 years ago
parent
commit
8830b3fbac
  1. 28
      ICSharpCode.NRefactory.Tests/CSharp/Parser/TypeSystemConvertVisitorTests.cs

28
ICSharpCode.NRefactory.Tests/CSharp/Parser/TypeSystemConvertVisitorTests.cs

@ -36,6 +36,16 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
{ {
compilation = ParseTestCase().CreateCompilation(); compilation = ParseTestCase().CreateCompilation();
} }
static IProjectContent CreateContent (IUnresolvedFile unresolvedFile)
{
return new CSharpProjectContent()
.AddOrUpdateFiles(unresolvedFile)
.AddAssemblyReferences(new[] {
CecilLoaderTests.Mscorlib
})
.SetAssemblyName(typeof(TypeSystemTests).Assembly.GetName().Name);
}
internal static IProjectContent ParseTestCase() internal static IProjectContent ParseTestCase()
{ {
@ -47,11 +57,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
syntaxTree = parser.Parse(s, fileName); syntaxTree = parser.Parse(s, fileName);
} }
var unresolvedFile = syntaxTree.ToTypeSystem(); return CreateContent(syntaxTree.ToTypeSystem());
return new CSharpProjectContent()
.AddOrUpdateFiles(unresolvedFile)
.AddAssemblyReferences(new[] { CecilLoaderTests.Mscorlib })
.SetAssemblyName(typeof(TypeSystemTests).Assembly.GetName().Name);
} }
[Test] [Test]
@ -80,6 +86,18 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
var method = t.GetMethods(m => m.Name == "PartialMethodWithoutImplementation").Single(); var method = t.GetMethods(m => m.Name == "PartialMethodWithoutImplementation").Single();
Assert.AreEqual(1, method.Parts.Count); Assert.AreEqual(1, method.Parts.Count);
} }
[Test]
public void CyclicConstants()
{
var syntaxTree = SyntaxTree.Parse ("class Test { const int foo = foo; }");
syntaxTree.FileName = "a.cs";
var content = CreateContent (syntaxTree.ToTypeSystem());
var testType = content.CreateCompilation ().MainAssembly.GetTypeDefinition ("", "Test");
Assert.NotNull (testType);
var field = testType.Fields.First ();
Assert.IsTrue (field.IsConst);
}
} }
[TestFixture] [TestFixture]

Loading…
Cancel
Save