serializer = new Native(); $this->persistable = new GaussianNB(); } /** * @test */ public function build() : void { $this->assertInstanceOf(Native::class, $this->serializer); $this->assertInstanceOf(Serializer::class, $this->serializer); } /** * @test */ public function serializeDeserialize() : void { $data = $this->serializer->serialize($this->persistable); $this->assertInstanceOf(Encoding::class, $data); $persistable = $this->serializer->deserialize($data); $this->assertInstanceOf(GaussianNB::class, $persistable); $this->assertInstanceOf(Persistable::class, $persistable); } /** * @return array */ public function deserializeInvalidData() : array { return [ [3], [new stdClass()], ]; } /** * @test * * @param mixed $obj * * @dataProvider deserializeInvalidData */ public function deserializeBadData($obj) : void { $data = new Encoding(serialize($obj)); $this->expectException(RuntimeException::class); $this->serializer->deserialize($data); } }