mirror of
https://github.com/FabInfra/capnproto-dotnetcore_Runtime.git
synced 2025-03-12 14:51:41 +01:00
108 lines
5.0 KiB
C#
108 lines
5.0 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace CapnpC.CSharp.Generator.Tests
|
|
{
|
|
[TestClass]
|
|
public class CapnpMessageUnitTests
|
|
{
|
|
[TestMethod]
|
|
public void ParseError()
|
|
{
|
|
var msg = new CapnpMessage(@"f:\code\invalid.capnp:5:1: error: Parse error.");
|
|
Assert.AreEqual(@"f:\code\invalid.capnp:5:1: error: Parse error.", msg.FullMessage);
|
|
Assert.IsTrue(msg.IsParseSuccess);
|
|
Assert.AreEqual(@"f:\code\invalid.capnp", msg.FileName);
|
|
Assert.AreEqual(5, msg.Line);
|
|
Assert.AreEqual(1, msg.Column);
|
|
Assert.AreEqual(0, msg.EndColumn);
|
|
Assert.AreEqual("error", msg.Category);
|
|
Assert.AreEqual("Parse error.", msg.MessageText);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ColumnSpan()
|
|
{
|
|
var msg = new CapnpMessage(@"f:\code\invalid.capnp:10:7-8: error: Duplicate ordinal number.");
|
|
Assert.IsTrue(msg.IsParseSuccess);
|
|
Assert.AreEqual(@"f:\code\invalid.capnp", msg.FileName);
|
|
Assert.AreEqual(10, msg.Line);
|
|
Assert.AreEqual(7, msg.Column);
|
|
Assert.AreEqual(8, msg.EndColumn);
|
|
Assert.AreEqual("error", msg.Category);
|
|
Assert.AreEqual("Duplicate ordinal number.", msg.MessageText);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void NoSuchFile()
|
|
{
|
|
var msg = new CapnpMessage(@"C:\ProgramData\chocolatey\lib\capnproto\tools\capnproto-tools-win32-0.7.0\capnp.exe compile: doesnotexist.capnp: no such file");
|
|
Assert.IsFalse(msg.IsParseSuccess);
|
|
Assert.AreEqual(@"C:\ProgramData\chocolatey\lib\capnproto\tools\capnproto-tools-win32-0.7.0\capnp.exe compile: doesnotexist.capnp: no such file", msg.FullMessage);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void NoId()
|
|
{
|
|
var msg = new CapnpMessage(@"empty.capnp:1:1: error: File does not declare an ID. I've generated one for you. Add this line to your file: @0xc82955a0c779197d;");
|
|
Assert.IsTrue(msg.IsParseSuccess);
|
|
Assert.AreEqual("empty.capnp", msg.FileName);
|
|
Assert.AreEqual(1, msg.Line);
|
|
Assert.AreEqual(1, msg.Column);
|
|
Assert.AreEqual("error", msg.Category);
|
|
Assert.AreEqual("File does not declare an ID. I've generated one for you. Add this line to your file: @0xc82955a0c779197d;", msg.MessageText);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void AnnoyingNTFSAlternateDataStream1()
|
|
{
|
|
var msg = new CapnpMessage(@"3:2:1:1: error: File does not declare an ID. I've generated one for you. Add this line to your file: @0xc82955a0c779197d;");
|
|
Assert.IsTrue(msg.IsParseSuccess);
|
|
Assert.AreEqual("3:2", msg.FileName);
|
|
Assert.AreEqual(1, msg.Line);
|
|
Assert.AreEqual(1, msg.Column);
|
|
Assert.AreEqual("error", msg.Category);
|
|
Assert.AreEqual("File does not declare an ID. I've generated one for you. Add this line to your file: @0xc82955a0c779197d;", msg.MessageText);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void AnnoyingNTFSAlternateDataStream2()
|
|
{
|
|
var msg = new CapnpMessage(@"c:\3:2:1:1: error: File does not declare an ID. I've generated one for you. Add this line to your file: @0xc82955a0c779197d;");
|
|
Assert.IsTrue(msg.IsParseSuccess);
|
|
Assert.AreEqual(@"c:\3:2", msg.FileName);
|
|
Assert.AreEqual(1, msg.Line);
|
|
Assert.AreEqual(1, msg.Column);
|
|
Assert.AreEqual("error", msg.Category);
|
|
Assert.AreEqual("File does not declare an ID. I've generated one for you. Add this line to your file: @0xc82955a0c779197d;", msg.MessageText);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void AnnoyingNTFSAlternateDataStream3()
|
|
{
|
|
var msg = new CapnpMessage(@"\\?\c:\3:2:1:1: error: File does not declare an ID. I've generated one for you. Add this line to your file: @0xc82955a0c779197d;");
|
|
Assert.IsTrue(msg.IsParseSuccess);
|
|
Assert.AreEqual(@"\\?\c:\3:2", msg.FileName);
|
|
Assert.AreEqual(1, msg.Line);
|
|
Assert.AreEqual(1, msg.Column);
|
|
Assert.AreEqual("error", msg.Category);
|
|
Assert.AreEqual("File does not declare an ID. I've generated one for you. Add this line to your file: @0xc82955a0c779197d;", msg.MessageText);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void AnnoyingNTFSAlternateDataStream4()
|
|
{
|
|
var msg = new CapnpMessage(@"1:2-3:10:7-8: error: Duplicate ordinal number.");
|
|
Assert.IsTrue(msg.IsParseSuccess);
|
|
Assert.AreEqual(@"1:2-3", msg.FileName);
|
|
Assert.AreEqual(10, msg.Line);
|
|
Assert.AreEqual(7, msg.Column);
|
|
Assert.AreEqual(8, msg.EndColumn);
|
|
Assert.AreEqual("error", msg.Category);
|
|
Assert.AreEqual("Duplicate ordinal number.", msg.MessageText);
|
|
}
|
|
}
|
|
}
|