Data-AnyXfer

 view release on metacpan or  search on metacpan

t/elastic/serverdefinition.t  view on Meta::CPAN

use Modern::Perl;

use Test::Most;
use Test::Deep;
use aliased 'Data::AnyXfer::Elastic::ServerDefinition';

use constant TEST_SERVERS_FILE => './t/data/servers.json';


# Basic server definition

my %ExampleDefinition = (
  name              => 'testserver',
  env               => 'production',
  installed_version => '7.1',
  standalone_nodes  => [qw/localhost:9200/],
  cluster_nodes     => [],
  silos             => [qw/public_data/],
);

# Expected values for servers.json test file

my %ExpectedDefinition1 = (
  name              => 'prodserver',
  env               => 'production',
  silos             => [qw/public_data private_data/],
  standalone_nodes  => [
     'http://test-es-1.example.com:9200',
     'http://test-es-2.example.com:9200',
     'http://test-es-3.example.com:9200'
  ],
  cluster_nodes             => [
      'http://test-es-1.example.com:9201',
      'http://test-es-2.example.com:9201',
      'http://test-es-3.example.com:9201'
  ],
  installed_version => '6.4.0'
);

my %ExpectedDefinition2 = (
  name              => 'testserver',
  env               => 'testing',
  silos             => [qw/public_data private_data/],
  standalone_nodes  => ['http://localhost:9200'],
  cluster_nodes     => ['http://localhost:9201'],
  installed_version => '6.4.0'
);


# BASIC CONSTRUCTION

{
  note('Basic Construction');
  dies_ok {
    ServerDefinition->new;
  } qr/Missing required arguments.*/;

  my $def;
  dies_ok {
    $def = ServerDefinition
      ->new(@ExampleDefinition{qw/name env installed_version/});



( run in 2.815 seconds using v1.01-cache-2.11-cpan-99c4e6809bf )