Пример #1
0
        public void TestIncorrectGenericEvent()
        {
            var test = @"
namespace Foo {
machine M {
start state S
{
on e<<int> goto S2;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Unexpected token inside a generic name.", test);
        }
Пример #2
0
        public void TestMonitorOnEventDoActionDeclarationWithoutSemicolon()
        {
            var test = @"
namespace Foo {
monitor M {
start state S1
{
on e do Bar
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected \";\".", test);
        }
Пример #3
0
        public void TestQualifiedDefaultEvent()
        {
            var test = @"
namespace Foo {
machine M {
start state S
{
on Foo.default goto S2;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected identifier.", test);
        }
Пример #4
0
        public void TestGenericDefaultEvent()
        {
            var test = @"
namespace Foo {
machine M {
start state S
{
on default<int> goto S2;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Invalid generic expression.", test);
        }
Пример #5
0
        public void TestOnEventDeclarationWithoutHandler()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected \"do\", \"goto\" or \"push\".", test);
        }
Пример #6
0
        public void TestDeferEventDeclarationWithoutComma()
        {
            var test = @"
namespace Foo {
machine M {
start state S
{
defer e1 e2;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected \",\".", test);
        }
Пример #7
0
        public void TestOnEventDoActionDeclarationWithIncorrectWildcardUse()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e.* do Bar
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected identifier.", test);
        }
Пример #8
0
        public void TestMonitorMethodInsideGroup()
        {
            var test = @"
namespace Foo {
monitor M {
group G
{
void Bar() { }
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Unexpected token 'void'.", test);
        }
Пример #9
0
        public void TestAsyncInWrongExitLocation()
        {
            var test = @"
namespace Foo {
machine M {
state S1
{
    exit async {}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected \"{\".", test);
        }
Пример #10
0
        public void TestOnEventDoActionDeclarationWithoutAction()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e do;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected async keyword, action identifier, or opening curly bracket.", test);
        }
Пример #11
0
        public void TestAsyncInWrongDoLocation()
        {
            var test = @"
namespace Foo {
machine M {
state S1
{
async on e do {}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("'async' was used in an incorrect context.", test);
        }
Пример #12
0
        public void TestAsyncOnState()
        {
            var test = @"
namespace Foo {
machine M {
async state S1
{
on e do {}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("A machine state cannot be async.", test);
        }
Пример #13
0
        public void TestAsyncOnMachine()
        {
            var test = @"
namespace Foo {
async machine M {
start state S1
{
on e do {}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Unexpected token.", test);
        }
Пример #14
0
        public void TestOnEventDoActionAnonymousHandlerWithAwaitedAction()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e do await {}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("'await' should not be used on actions.", test);
        }
Пример #15
0
        public void TestOnEventDoActionDeclarationWithGenericError2()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e> do Bar;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Invalid generic expression.", test);
        }
Пример #16
0
        public void TestMonitorEmptyNestedGroup()
        {
            var test = @"
namespace Foo {
monitor M {
group G
{
group G2 { }
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("A state group must declare at least one state.", test);
        }
Пример #17
0
        public void TestMonitorGroupInsideState()
        {
            var test = @"
namespace Foo {
monitor M {
start state S
{
group G { }
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Unexpected token.", test);
        }
Пример #18
0
        public void TestOnEventDoActionDeclarationWithCommaError()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e, do Bar
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected event identifier.", test);
        }
Пример #19
0
        public void TestOnEventGotoStateDeclarationWithGenericError3()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e<List<int>>> goto S2;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Invalid generic expression.", test);
        }
Пример #20
0
        public void TestOnEventGotoStateDeclarationWithGenericError1()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on <> goto S2;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected event identifier.", test);
        }
Пример #21
0
        public void TestOnEventGotoStateDeclarationWithoutState()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e goto;
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected state identifier.", test);
        }
Пример #22
0
        public void TestOnEventGotoStateDeclarationWithoutSemicolon()
        {
            var test = @"
namespace Foo {
machine M {
start state S1
{
on e goto S2
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected \";\".", test);
        }
Пример #23
0
        public void TestEntryDeclarationWithUnexpectedIdentifier()
        {
            var test = @"
namespace Foo {
machine M {
start state S
{
entry Bar {}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected \"{\".", test);
        }
Пример #24
0
        public void TestOnlyOneStartState()
        {
            var test = @"
namespace Foo {
    machine Machine1 {
        start state Init : BaseState {
        }

        start state BaseState {
        }
    }
}";

            LanguageTestUtilities.AssertFailedTestLog("A machine can declare only a single start state.", test);
        }
Пример #25
0
        public void TestStateDeclarationWithMoreThanOneExit()
        {
            var test = @"
namespace Foo {
machine M {
start state S
{
exit{}
exit {}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Duplicate exit declaration.", test);
        }
Пример #26
0
        public void TestMonitorIgnoreEventDeclarationWithExtraComma()
        {
            var test = @"
namespace Foo {
monitor M {
group G {
start state S
{
ignore e1,e2,;
}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected event identifier.", test);
        }
Пример #27
0
        public void TestMonitorIgnoreEventDeclarationWithoutComma()
        {
            var test = @"
namespace Foo {
monitor M {
group G {
start state S
{
ignore e1 e2;
}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected \",\".", test);
        }
Пример #28
0
        public void TestMachineDeferEventDeclarationWithExtraComma()
        {
            var test = @"
namespace Foo {
machine M {
group G {
start state S
{
defer e1,e2,;
}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Expected event identifier.", test);
        }
Пример #29
0
        public void TestMonitorStateDeclarationWithMoreThanOneEntry()
        {
            var test = @"
namespace Foo {
monitor M {
group G {
start state S
{
entry {}
entry{}
}
}
}
}";

            LanguageTestUtilities.AssertFailedTestLog("Duplicate entry declaration.", test);
        }
Пример #30
0
        public void TestUsingDeclarationWithoutIdentifier()
        {
            var test = "using;";

            LanguageTestUtilities.AssertFailedTestLog("Expected identifier.", test);
        }