o11y-8.x-1.x-dev/modules/o11y_metrics/modules/o11y_metrics_comment/tests/src/Unit/Plugin/MetricsCollector/CommentCollectorTest.php

modules/o11y_metrics/modules/o11y_metrics_comment/tests/src/Unit/Plugin/MetricsCollector/CommentCollectorTest.php
<?php

namespace Drupal\Tests\o11y_metrics_comment\Unit\Plugin\MetricsCollector;

use Drupal\comment\CommentInterface;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Entity\Query\QueryInterface;
use Drupal\o11y_metrics_comment\Plugin\MetricsCollector\CommentCollector;
use Drupal\Tests\o11y_metrics\Unit\Plugin\MetricsCollector\AbstractTestBaseMetrics;

/**
 * @coversDefaultClass \Drupal\o11y_metrics_comment\Plugin\MetricsCollector\CommentCollector
 * @group o11y_metrics
 */
class CommentCollectorTest extends AbstractTestBaseMetrics {

  use \Prophecy\PhpUnit\ProphecyTrait;

  /**
   * @covers ::collectMetrics
   */
  public function testCollect() {

    $commentQuery1 = $this->prophesize(QueryInterface::class);
    $commentQuery1->accessCheck(TRUE)->willReturn($commentQuery1);
    $commentQuery1->count()->willReturn($commentQuery1);
    $commentQuery1->execute()->willReturn(24);

    $commentQuery2 = $this->prophesize(QueryInterface::class);
    $commentQuery2->accessCheck(TRUE)->willReturn($commentQuery2);
    $commentQuery2->condition('status', CommentInterface::NOT_PUBLISHED)->willReturn($commentQuery2);
    $commentQuery2->count()->willReturn($commentQuery2);
    $commentQuery2->execute()->willReturn(1);

    $commentQuery3 = $this->prophesize(QueryInterface::class);
    $commentQuery3->accessCheck(TRUE)->willReturn($commentQuery3);
    $commentQuery3->condition('status', CommentInterface::PUBLISHED)->willReturn($commentQuery3);
    $commentQuery3->count()->willReturn($commentQuery3);
    $commentQuery3->execute()->willReturn(23);

    $comment_storage = $this->prophesize(EntityStorageInterface::class);
    $comment_storage->getQuery()->willReturn($commentQuery1, $commentQuery2, $commentQuery3);

    $definition = [
      'provider' => 'node_count',
      'description' => 'Test description',
    ];

    $collector = new CommentCollector([], 'comment_count', $definition, $this->prometheusBridge, $comment_storage->reveal());

    $collector->executeMetrics();
    $this->assertEquals(<<<EOD
# HELP drupal_comment_count_total Test description
# TYPE drupal_comment_count_total gauge
drupal_comment_count_total 24
# HELP drupal_comment_count_total_per_status Test description
# TYPE drupal_comment_count_total_per_status gauge
drupal_comment_count_total_per_status{status="not published"} 1
drupal_comment_count_total_per_status{status="published"} 23
EOD, $this->prometheusBridge->render());
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc