Codeception / module-db

DB module for Codeception

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[JsonException] Malformed UTF-8 characters, possibly incorrectly encoded

cybd opened this issue · comments

I'm using UUID as binary(16) in MySQL tables.
My test is failed when I'm trying to test seeInDatabase using UUID as filter criteria.

Test failed with error:
[JsonException] Malformed UTF-8 characters, possibly incorrectly encoded

php vendor/bin/codecept run unit Codeception/Module/Db/MySqlDbTest:testSeeInDatabaseWithBinary -vvv

Console output with -vvv mode:

Codeception PHP Testing Framework v5.0.10 https://helpukrainewin.org

  actor is empty

Unit Tests (1) --------------------------------------------------------------------------------------------------------------------------------------------------------------
Modules: 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- MySqlDbTest: See in database with binary  [Connecting To Db] {"config":{"populate":true,"cleanup":true,"reconnect":true,"waitlock":0,"dump":"tests/data/dumps/mysql.sql","populator":null,"skip_cleanup_if_failed":false,"dsn":"mysql:host=host.docker.internal;port=3102;dbname=codeception","user":"root","password":"codeception"},"options":[]}
  [Db] Connected to default codeception
  [Db] Disconnected from default
  [Connecting To Db] {"config":{"populate":true,"cleanup":true,"reconnect":true,"waitlock":0,"dump":"tests/data/dumps/mysql.sql","populator":null,"skip_cleanup_if_failed":false,"dsn":"mysql:host=host.docker.internal;port=3102;dbname=codeception","user":"root","password":"codeception"},"options":[]}
  [Db] Connected to default codeception
  [Query] SELECT count(*) FROM `users` WHERE `uuid` = ? 
  [Parameters] ["u0011ufffdufffdKu0001ufffdrufffdufffdu001du0002Bufffdu0012u0000u0006"]
E MySqlDbTest: See in database with binary(0.19s)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Time: 00:00.213, Memory: 12.00 MB

There was 1 error:
1) MySqlDbTest: See in database with binary
 Test  tests/unit/Codeception/Module/Db/MySqlDbTest.php:testSeeInDatabaseWithBinary
                                                                            
  [JsonException] Malformed UTF-8 characters, possibly incorrectly encoded  
                                                                            
/var/www/html/src/Codeception/Module/Db.php:839
/var/www/html/tests/unit/Codeception/Module/Db/AbstractDbTest.php:69
/var/www/html/vendor/phpunit/phpunit/src/Framework/TestCase.php:1067
/var/www/html/vendor/phpunit/phpunit/src/Framework/TestCase.php:634
/var/www/html/vendor/codeception/codeception/src/Codeception/Test/TestCaseWrapper.php:148
/var/www/html/vendor/codeception/codeception/src/Codeception/Test/Test.php:170
/var/www/html/vendor/codeception/codeception/src/Codeception/Suite.php:130
/var/www/html/vendor/codeception/codeception/src/Codeception/SuiteManager.php:148
/var/www/html/vendor/codeception/codeception/src/Codeception/Codecept.php:260
/var/www/html/vendor/codeception/codeception/src/Codeception/Codecept.php:216
/var/www/html/vendor/codeception/codeception/src/Codeception/Command/Run.php:435
/var/www/html/vendor/symfony/console/Command/Command.php:326
/var/www/html/vendor/symfony/console/Application.php:1063
/var/www/html/vendor/symfony/console/Application.php:320
/var/www/html/vendor/symfony/console/Application.php:174
/var/www/html/vendor/codeception/codeception/src/Codeception/Application.php:112
/var/www/html/vendor/codeception/codeception/app.php:45
/var/www/html/vendor/codeception/codeception/app.php:46
/var/www/html/vendor/codeception/codeception/codecept:7
/var/www/html/vendor/bin/codecept:120


ERRORS!
Tests: 1, Assertions: 1, Errors: 1.
  [Db] Disconnected from default

Provide test source code if related

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uuid` binary(16) DEFAULT NULL,
  `name` varchar(30) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `is_active` bit(1) DEFAULT b'1',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


insert  into `users`(`id`,`uuid`, `name`,`email`, `is_active`,`created_at`) values (1,0x11edc34b01d972fa9c1d0242ac120006,'davert','davert@mail.ua', b'1','2012-02-01 21:17:04');
    public function testSeeInDatabaseWithBinary()
    {
        $this->module->seeInDatabase('users', ['uuid' => hex2bin('11edc34b01d972fa9c1d0242ac120006')]);
    }

Details

  • Codeception version: 5.0.10
  • PHP Version: PHP 8.1.16 (cli)
  • Operating System: Linux
  • Installation type: Dockerized module-db
  • List of installed packages (composer show)
root@400b115c4f29:/var/www/html# composer show
behat/gherkin                      dev-master 01379b1 Gherkin DSL parser for PHP
codeception/codeception            5.0.x-dev ed4af7f  BDD-style testing framework
codeception/lib-asserts            2.1.0              Assertion methods used by Codeception core and Asserts module
codeception/stub                   4.1.0              Flexible Stub wrapper for PHPUnit's Mock Builder
myclabs/deep-copy                  1.x-dev 928a96f    Create deep copies (clones) of your objects
nikic/php-parser                   4.x-dev 0ffddce    A PHP parser written in PHP
phar-io/manifest                   dev-master 36d8a21 Component for reading phar.io manifest information from a PHP Archive (PHAR)
phar-io/version                    3.2.1              Library for handling version information and constraints
phpunit/php-code-coverage          dev-main 489650a   Library that provides collection, processing, and rendering functionality for PHP code coverage information.
phpunit/php-file-iterator          dev-main 83f6271   FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-invoker                dev-main 5994330   Invoke callables with a timeout
phpunit/php-text-template          dev-main 9914010   Simple template engine.
phpunit/php-timer                  dev-main fe67739   Utility class for timing
phpunit/phpunit                    dev-main 38f35a7   The PHP Unit Testing framework.
psr/container                      dev-master 90db7b9 Common Container Interface (PHP FIG PSR-11)
psr/event-dispatcher               dev-master e275e2d Standard interfaces for event handling.
psy/psysh                          dev-main 6c8c0fd   An interactive shell for modern PHP.
sebastian/cli-parser               dev-main 9215d45   Library for parsing CLI options
sebastian/code-unit                dev-main 362736b   Collection of value objects that represent the PHP code units
sebastian/code-unit-reverse-lookup dev-main cd740da   Looks up which function or method a line of code belongs to
sebastian/comparator               dev-main 5d09783   Provides the functionality to compare PHP values for equality
sebastian/complexity               dev-main 27d3bd5   Library for calculating the complexity of PHP code units
sebastian/diff                     dev-main 2c9aad8   Diff implementation
sebastian/environment              dev-main 54b3f6e   Provides functionality to handle HHVM/PHP environments
sebastian/exporter                 dev-main d6e9b3c   Provides the functionality to export PHP variables for visualization
sebastian/global-state             dev-main 3b3c08e   Snapshotting of global state
sebastian/lines-of-code            dev-main a1e716d   Library for counting the lines of code in PHP source code
sebastian/object-enumerator        dev-main ac568e5   Traverses array structures and object graphs to enumerate all referenced objects
sebastian/object-reflector         dev-main 4bf3974   Allows reflection of object attributes, including inherited and non-public ones
sebastian/recursion-context        dev-main 8343512   Provides functionality to recursively process PHP variables
sebastian/type                     dev-main 1a33327   Collection of value objects that represent the types of the PHP type system
sebastian/version                  dev-main a7fa65c   Library that helps with managing the version number of Git-hosted PHP projects
symfony/console                    6.3.x-dev 2655810  Eases the creation of beautiful and testable command line interfaces
symfony/css-selector               6.3.x-dev efc0747  Converts CSS selectors to XPath expressions
symfony/deprecation-contracts      dev-main e2d1534   A generic function and convention to trigger deprecation notices
symfony/event-dispatcher           6.3.x-dev 7fa6112  Provides tools that allow your application components to communicate with each other by dispatching events and lis...
symfony/event-dispatcher-contracts dev-main 0ad3b6f   Generic abstractions related to dispatching event
symfony/finder                     6.3.x-dev f5891f0  Finds files and directories via an intuitive fluent interface
symfony/polyfill-ctype             dev-main ea208ce   Symfony polyfill for ctype functions
symfony/polyfill-intl-grapheme     dev-main 875e90a   Symfony polyfill for intl's grapheme_* functions
symfony/polyfill-intl-normalizer   dev-main 8c4ad05   Symfony polyfill for intl's Normalizer class and related functions
symfony/polyfill-mbstring          dev-main f9c7aff   Symfony polyfill for the Mbstring extension
symfony/service-contracts          dev-main a8c9ced   Generic abstractions related to writing services
symfony/string                     6.3.x-dev 599f0f0  Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unif...
symfony/var-dumper                 6.3.x-dev 42237ee  Provides mechanisms for walking through any arbitrary PHP variable
symfony/yaml                       6.3.x-dev 55071ed  Loads and dumps YAML files
theseer/tokenizer                  1.2.1              A small library for converting tokenized PHP source code into XML and potentially other formats