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); }