The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Quiq::Assert - Zusicherungen

BASE CLASS

Quiq::Hash

SYNOPSIS

  use Quiq::Assert;
  
  my $a = Quiq::Assert->new;
  
  # Universeller Test (hier: Prüfe, ob Wert einen Punkt (.) enthält)
  $a->check('a.b',sub {index(shift,'.') >= 0});
  
  # Prüfe, ob Wert in Aufzählung vorkommt
  $a->isEnumValue('Birne',['Apfel','Birne','Pflaume']);
  
  # Prüfe, ob Wert nicht leer ist
  $a->isNotNull('xyz');
  
  # Prüfe, ob Wert eine Zahl ist
  $a->isNumber(3.14159);

DESCRIPTION

Die Klasse stellt Methoden zur Verfügung, mit denen eine Eingenschaft eines Werts geprüft werden kann. Im Erfolgsfall kehrt die jeweilige Methode zurück, im Fehlerfall wirft sie eine Exception.

EXAMPLE

Test von der Kommandozeile aus:

  $ perl -MQuiq::Assert -E 'Quiq::Assert->new->isNotNull("",-name=>"x")'
  Exception:
      ASSERT-00002: Value is null
  Name:
      x
  Stacktrace:
      Quiq::Assert::isNotNull() [+1 -e]
        Quiq::Object::throw() [+210 .../Quiq/Assert.pm]
          Quiq::Stacktrace::asString() [+425 .../Quiq/Object.pm]

METHODS

Konstruktor

new() - Instantiiere Objekt

Synopsis

  $a = $class->new(@att);

Arguments

@att

Attribut/Wert-Paare.

nameSection => $label

Bezeichnung des Namensabschnitts.

stacktrace => $bool (Default: 1)

Gib bei Exception einen Stacktrace aus.

Returns

Objekt

Description

Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück. Da die Klasse ausschließlich Klassenmethoden enthält, hat das Objekt lediglich die Funktion, eine abkürzende Aufrufschreibweise zu ermöglichen.

Zusicherungen

Die folgenden Testmethoden können sowohl als Klassen- als auch als Objektmethoden gerufen werden. Im Void-Kontext gerufen, werfen sie eine Exception, wenn die Bedingung verletzt ist, andernfalls 0 oder 1.

check() - Prüfe beliebige Bedingung

Synopsis

  $this->check($val,@opt,$sub);         # Exception
  $bool = $this->check($val,@opt,$sub); # Rückgabewert

Arguments

$val

Wert, der geprüft wird.

$sub

Prüf-Subroutine. Ist die Bedingung erfüllt, liefert sie "wahr", andernfalls "falsch". Beispiel:

  sub {
      my $val = shift;
      return $val =~ /\.export$/? 1: 0;
  }

Options

-name => $str

Name, der bei Verletzung der Bedingung als Teil der Fehlermeldung ausgegeben wird. Dies kann der Name der geprüften Variable, des geprüften Parameters o.ä. sein.

Returns

Boolean

Description

Prüfe den Wert $val daraufhin, ob er die Prüfung $sub besteht. Ist dies nicht der Fall, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0. Ein leerer Wert verletzt die Bedingung nicht, d.h. die Subroutine wird für einen leeren Wert nicht gerufen und muss diesen Fall daher nicht behandeln.

pathExists() - Prüfe Existenz von Pfad

Synopsis

  $this->pathExists($path);         # Exception
  $bool = $this->pathExists($path); # Rückgabewert

Aliases

  • fileExists()

  • dirExists()

Arguments

$path (String)

Pfad

Returns

Boolean

Description

Prüfe, ob Pfad $path existiert. Ist dies nicht der Fall, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0. Ein leerer Wert verletzt die Bedingung nicht.

isEnumValue() - Prüfe auf Enthaltensein in Enum

Synopsis

  $this->isEnumValue($val,\@values,@opt);         # Exception
  $bool = $this->isEnumValue($val,\@values,@opt); # Rückgabewert

Arguments

$val

Wert, der geprüft wird.

@values

Liste der Enum-Werte.

Options

-name => $str

Name, der bei Verletzung der Bedingung als Teil der Fehlermeldung ausgegeben wird. Dies kann der Name der geprüften Variable, des geprüften Parameters o.ä. sein.

Returns

Boolean

Description

Prüfe den Wert $val daraufhin, dass er in Liste @values enthalten ist. Ist dies nicht der Fall, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0. Ein leerer Wert verletzt die Bedingung nicht.

isNotNull() - Prüfe auf nichtleeren Wert

Synopsis

  $this->isNotNull($val,@opt);         # Exception
  $bool = $this->isNotNull($val,@opt); # Rückgabewert

Arguments

$val

Wert, der geprüft wird.

Options

-name => $str

Name, der bei Verletzung der Bedingung als Teil der Fehlermeldung ausgegeben wird. Dies kann der Name der geprüften Variable, des geprüften Parameters o.ä. sein.

Returns

Boolean

Description

Prüfe den Wert $val daraufhin, dass er nichtleer, also weder undefiniert noch ein Leerstring ist. Ist er leer, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0.

isNumber() - Prüfe auf dezimale Zahldarstellung

Synopsis

  $this->isNumber($val,@opt);         # Exception
  $bool = $this->isNumber($val,@opt); # Rückgabewert

Arguments

$val

Wert, der geprüft wird.

Options

-name => $str

Name, der bei Verletzung der Bedingung als Teil der Fehlermeldung ausgegeben wird. Dies kann der Name der geprüften Variable, des geprüften Parameters o.ä. sein.

Returns

Boolean

Description

Prüfe den Wert $val daraufhin, dass er eine dezimale Zahl darstellt. Ist dies nicht der Fall, wirf eine Exception, wenn die Methode im Void-Kontext gerufen wurde, andernfalls 0. Ein leerer Wert verletzt die Bedingung nicht.

VERSION

1.208

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2023 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.