public void InvalidIdentifier() { var codeString = "class C { void F(int i) { sitch(i) {} } }"; using (var code = new MemoryStream(Encoding.ASCII.GetBytes(codeString))) { Assert.Throws <SyntaxErrorException>(() => Cecilifier.Process(code, Utils.GetTrustedAssembliesPath()).GeneratedCode.ReadToEnd()); } }
private static void AssertUnsupportedFeature(string codeString, string expectedMessage) { var code = new MemoryStream(Encoding.ASCII.GetBytes(codeString)); using (var stream = Cecilifier.Process(code, Utils.GetTrustedAssembliesPath()).GeneratedCode) { var cecilifiedCode = stream.ReadToEnd(); Assert.That(cecilifiedCode, Contains.Substring(expectedMessage)); } }
public void EnumeratorBlocks(string statement) { var code = new MemoryStream(Encoding.ASCII.GetBytes($"class Test {{ System.Collections.IEnumerable Do() {{ {statement}; }} }} ")); using (var stream = Cecilifier.Process(code, Utils.GetTrustedAssembliesPath()).GeneratedCode) { var cecilifiedCode = stream.ReadToEnd(); Assert.That(cecilifiedCode, Does.Match("Syntax 'Yield(Return|Break)Statement' is not supported")); } }
private string Cecilfy(Stream stream) { stream.Position = 0; return(Cecilifier.Process(stream, Utils.GetTrustedAssembliesPath()).GeneratedCode.ReadToEnd()); }