/**
  * @covers WindowsAzure\ServiceBus\ServiceBusRestProxy::getRule
  */
 public function testRulesMayHaveActionAndFilter()
 {
     // Setup
     $topicName = 'testRulesMayHaveActionAndFilter';
     $subscriptionName = 'sub';
     $topicInfo = new TopicInfo($topicName);
     $subscriptionInfo = new SubscriptionInfo($subscriptionName);
     $this->safeDeleteSubscription($topicName, $subscriptionName);
     $this->safeDeleteTopic($topicName);
     $createTopicResult = $this->createTopic($topicInfo);
     $subscriptionInfo = $this->createSubscription($topicName, $subscriptionInfo);
     $expectedRuleOne = new RuleInfo('one');
     $expectedRuleOne->withCorrelationFilter('my-id');
     $expectedRuleTwo = new RuleInfo('two');
     $expectedRuleTwo->withTrueFilter();
     $expectedRuleThree = new RuleInfo('three');
     $expectedRuleThree->withFalseFilter();
     $expectedRuleFour = new RuleInfo('four');
     $expectedRuleFour->withEmptyRuleAction();
     $expectedRuleFive = new RuleInfo('five');
     $expectedRuleFive->withSqlRuleAction('SET x = 5');
     $expectedRuleSix = new RuleInfo('six');
     $expectedRuleSix->withSqlFilter('x != 5');
     // Test
     $actualRuleOne = $this->restProxy->createRule($topicName, $subscriptionName, $expectedRuleOne);
     $actualRuleTwo = $this->restProxy->createRule($topicName, $subscriptionName, $expectedRuleTwo);
     $actualRuleThree = $this->restProxy->createRule($topicName, $subscriptionName, $expectedRuleThree);
     $actualRuleFour = $this->restProxy->createRule($topicName, $subscriptionName, $expectedRuleFour);
     $actualRuleFive = $this->restProxy->createRule($topicName, $subscriptionName, $expectedRuleFive);
     $actualRuleSix = $this->restProxy->createRule($topicName, $subscriptionName, $expectedRuleSix);
     // Assert
     $this->assertNotNull($createTopicResult);
     $this->assertNotNull($subscriptionInfo);
     $this->assertInstanceOf('WindowsAzure\\ServiceBus\\Models\\CorrelationFilter', $actualRuleOne->getFilter());
     $this->assertInstanceOf('WindowsAzure\\ServiceBus\\Models\\TrueFilter', $actualRuleTwo->getFilter());
     $this->assertInstanceOf('WindowsAzure\\ServiceBus\\Models\\FalseFilter', $actualRuleThree->getFilter());
     $this->assertInstanceOf('WindowsAzure\\ServiceBus\\Models\\EmptyRuleAction', $actualRuleFour->getAction());
     $this->assertInstanceOf('WindowsAzure\\ServiceBus\\Models\\SqlRuleAction', $actualRuleFive->getAction());
     $this->assertInstanceOf('WindowsAzure\\ServiceBus\\Models\\SqlFilter', $actualRuleSix->getFilter());
 }
 /**
  * @covers WindowsAzure\ServiceBus\ServiceBusRestProxy::createRule
  * @covers WindowsAzure\ServiceBus\ServiceBusRestProxy::createSubscription
  * @covers WindowsAzure\ServiceBus\ServiceBusRestProxy::createTopic
  */
 public function testRulesMayHaveActionAndFilter()
 {
     // Arrange
     $topicName = 'TestRulesMayHaveAnActionAndFilter';
     $this->restProxy->createTopic(new TopicInfo($topicName));
     $this->restProxy->createSubscription($topicName, new SubscriptionInfo('sub'));
     // Act
     $ruleInfoOne = new RuleInfo('One');
     $ruleInfoOne->withCorrelationFilter('my-id');
     $ruleOne = $this->restProxy->createRule($topicName, 'sub', $ruleInfoOne);
     $ruleInfoTwo = new RuleInfo('Two');
     $ruleInfoTwo->withTrueFilter();
     $ruleTwo = $this->restProxy->createRule($topicName, 'sub', $ruleInfoTwo);
     $ruleInfoThree = new RuleInfo('Three');
     $ruleInfoThree->withFalseFilter();
     $ruleThree = $this->restProxy->createRule($topicName, 'sub', $ruleInfoThree);
     $ruleInfoFour = new RuleInfo('Four');
     $ruleInfoFour->withEmptyRuleAction();
     $ruleFour = $this->restProxy->createRule($topicName, 'sub', $ruleInfoFour);
     $ruleInfoFive = new RuleInfo('Five');
     $ruleInfoFive->withSqlRuleAction('SET x = 5');
     $ruleFive = $this->restProxy->createRule($topicName, 'sub', $ruleInfoFive);
     $ruleInfoSix = new RuleInfo('Six');
     $ruleInfoSix->withSqlFilter('x != 5');
     $ruleSix = $this->restProxy->createRule($topicName, 'sub', $ruleInfoSix);
     // Assert
     $this->assertTrue($ruleOne->getFilter() instanceof \WindowsAzure\ServiceBus\Models\CorrelationFilter, '$ruleOne->getFilter() instanceof CorrelationFilter');
     $this->assertTrue($ruleTwo->getFilter() instanceof \WindowsAzure\ServiceBus\Models\TrueFilter, '$ruleTwo->getFilter() instanceof TrueFilter');
     $this->assertTrue($ruleThree->getFilter() instanceof \WindowsAzure\ServiceBus\Models\FalseFilter, '$ruleThree->getFilter() instanceof FalseFilter');
     $this->assertTrue($ruleFour->getAction() instanceof \WindowsAzure\ServiceBus\Models\EmptyRuleAction, '$ruleFour->getAction() instanceof EmptyRuleAction');
     $this->assertTrue($ruleFive->getAction() instanceof \WindowsAzure\ServiceBus\Models\SqlRuleAction, '$ruleFive->getAction() instanceof SqlRuleAction');
     $this->assertTrue($ruleSix->getFilter() instanceof \WindowsAzure\ServiceBus\Models\SqlFilter, '$ruleSix->getFilter() instanceof SqlFilter');
 }