public void EventNotificationRuleExpr()
        {
            var result = _parser.NotificationRuleExprParse(
                @"event x,y
								subjects
role alpha; not beta, gamma
role u
group theta; not eta
group f
person max, andr
								protocol email
								report 131231231232
attach
report 75
format snmp");

            result.Should().NotBeNull();
            result.Event.Should().NotBeNull();
            result.Event.Should().BeOfType <GroupExpr.IncludeGroupExpr>();
            result.Event.Dependent.Should().NotBeNull();
            result.Event.Dependent.Should().BeEquivalentTo("x", "y");

            result.Trigger.Should().BeNull();

            result.Subjects.Should().NotBeNull();
            result.Subjects.Roles.Should().HaveCount(2);
            result.Subjects.Roles[0].RoleName.Should().Be("alpha");
            result.Subjects.Roles[0].ExcludedPersons.Should().BeEquivalentTo("beta", "gamma");
            result.Subjects.Roles[1].RoleName.Should().Be("u");
            result.Subjects.Roles[1].ExcludedPersons.Should().BeEmpty();
            result.Subjects.SubjectGroups.Should().HaveCount(2);
            result.Subjects.SubjectGroups[0].GroupName.Should().Be("theta");
            result.Subjects.SubjectGroups[0].ExcludedPersons.Should().BeEquivalentTo("eta");
            result.Subjects.SubjectGroups[1].GroupName.Should().Be("f");
            result.Subjects.SubjectGroups[1].ExcludedPersons.Should().BeEmpty();
            result.Subjects.Persons.Should().BeEquivalentTo("max", "andr");

            result.Protocol.Should().NotBeNull();
            result.Protocol.ShouldBeEquivalentTo("email");

            result.ReportId.ShouldBeEquivalentTo(131231231232);

            result.Attachments.Should().HaveCount(1);

            var attach = result.Attachments.First();

            attach.ReportId.ShouldBeEquivalentTo(75);
            attach.ExportFormat.ShouldBeEquivalentTo("snmp");
            attach.Parameters.Should().HaveCount(0);
        }