'https://example.com/webhook', 'time' => time(), 'update_types' => [UpdateType::MessageCreated->value, UpdateType::BotStarted->value], 'version' => '0.0.1', ]; $subscription = Subscription::fromArray($data); $this->assertInstanceOf(Subscription::class, $subscription); $this->assertSame($data['url'], $subscription->url); $this->assertSame($data['time'], $subscription->time); $this->assertSame([UpdateType::MessageCreated, UpdateType::BotStarted], $subscription->updateTypes); $this->assertSame($data['version'], $subscription->version); $array = $subscription->toArray(); $this->assertIsArray($array); $this->assertSame($data, $array); } #[Test] public function canBeCreatedFromArrayWithOptionalDataNull(): void { $data = [ 'url' => 'https://example.com/webhook', 'time' => time(), 'update_types' => null, 'version' => null, ]; $subscription = Subscription::fromArray($data); $this->assertInstanceOf(Subscription::class, $subscription); $this->assertSame($data['url'], $subscription->url); $this->assertSame($data['time'], $subscription->time); $this->assertNull($subscription->updateTypes); $this->assertNull($subscription->version); $array = $subscription->toArray(); $this->assertIsArray($array); $this->assertSame($data, $array); } }