Scalr\Tests\Service\Aws\CloudWatchTest::testMetricStatistic PHP Method

testMetricStatistic() public method

public testMetricStatistic ( )
    public function testMetricStatistic()
    {
        $tstart = new \DateTime('-3600 second', new \DateTimeZone('UTC'));
        $tend = new \DateTime(null, new \DateTimeZone('UTC'));
        $this->assertEquals(3600, $tend->getTimestamp() - $tstart->getTimestamp());
        $cloudWatch = $this->getCloudWatchMock();
        $metricList = $cloudWatch->metric->list(null, 'AWS/EC2');
        $this->assertInstanceOf(self::CLASS_CLOUD_WATCH_METRIC_LIST, $metricList);
        $this->assertInstanceOf(self::CLASS_CLOUD_WATCH, $metricList->getCloudWatch());
        $ds = array();
        /* @var $metric MetricData */
        foreach ($metricList as $metric) {
            $this->assertInstanceOf(self::CLASS_CLOUD_WATCH_METRIC_DATA, $metric);
            $this->assertInstanceOf(self::CLASS_CLOUD_WATCH, $metric->getCloudWatch());
            $this->assertInstanceOf(self::CLASS_CLOUD_WATCH_DIMENSION_LIST, $metric->dimensions);
            $this->assertInstanceOf(self::CLASS_CLOUD_WATCH, $metric->dimensions->getCloudWatch());
            $this->assertNotNull($metric->dimensions->getMetricName());
            $this->assertEquals($metric->metricName, $metric->dimensions->getMetricName());
            /* @var $dimension DimensionData */
            foreach ($metric->dimensions as $dimension) {
                if ($metric->metricName == 'NetworkOut' && count($ds) < 2) {
                    $ds[] = $dimension;
                }
                $this->assertInstanceOf(self::CLASS_CLOUD_WATCH_DIMENSION_DATA, $dimension);
                $this->assertInstanceOf(self::CLASS_CLOUD_WATCH, $dimension->getCloudWatch());
                $this->assertNotNull($dimension->getMetricName());
                $this->assertEquals($metric->metricName, $dimension->getMetricName());
            }
        }
        $datapointList = $cloudWatch->metric->getStatistics('NetworkOut', new \DateTime('-1 hour', new \DateTimeZone('UTC')), new \DateTime(null, new \DateTimeZone('UTC')), array('Average'), 'AWS/EC2', 300, 'Bytes', $ds);
        $this->assertInstanceOf(self::CLASS_CLOUD_WATCH_DATAPOINT_LIST, $datapointList);
        $this->assertInstanceOf(self::CLASS_CLOUD_WATCH, $datapointList->getCloudWatch());
        foreach ($datapointList as $datapoint) {
            $this->assertInstanceOf(self::CLASS_CLOUD_WATCH_DATAPOINT_DATA, $datapoint);
            $this->assertInstanceOf(self::CLASS_CLOUD_WATCH, $datapoint->getCloudWatch());
        }
    }