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

@ -37,6 +37,16 @@ namespace ICSharpCode.NRefactory.CSharp.Parser @@ -37,6 +37,16 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
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()
{
const string fileName = "TypeSystemTests.TestCase.cs";
@ -47,11 +57,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser @@ -47,11 +57,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
syntaxTree = parser.Parse(s, fileName);
}
var unresolvedFile = syntaxTree.ToTypeSystem();
return new CSharpProjectContent()
.AddOrUpdateFiles(unresolvedFile)
.AddAssemblyReferences(new[] { CecilLoaderTests.Mscorlib })
.SetAssemblyName(typeof(TypeSystemTests).Assembly.GetName().Name);
return CreateContent(syntaxTree.ToTypeSystem());
}
[Test]
@ -80,6 +86,18 @@ namespace ICSharpCode.NRefactory.CSharp.Parser @@ -80,6 +86,18 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
var method = t.GetMethods(m => m.Name == "PartialMethodWithoutImplementation").Single();
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]

Loading…
Cancel
Save