Skip to content

Conversation

@Ayoub-Mabrouk
Copy link

Implemented unit tests for the webhook model classes. These test files had markTestIncomplete('Not implemented') stubs, so I filled them in.

Added tests for webhook model classes covering message content types (text, image, video, audio, location, sticker, file), event models (Follow, Join, Leave, Message, etc.), and supporting models like Emoji, ContentProvider, ImageSet, and Source types.

Each test verifies that the models can be instantiated and that their properties can be set and retrieved correctly. I made sure to handle non-nullable properties properly (no null assignment tests for those).

Also updated phpunit.xml to include the webhook test suite so PHPUnit actually runs these tests.

All tests pass and code quality checks (CodeSniffer, PHPStan, copyright) are clean. There are still some incomplete tests for models that need more work, but those are intentionally left as-is for now.

@CLAassistant
Copy link

CLAassistant commented Dec 20, 2025

CLA assistant check
All committers have signed the CLA.

Add webhook test suite to PHPUnit configuration to include all
webhook model tests in the test execution. This allows PHPUnit
to discover and run tests in src/webhook/test/Model/ directory.
Implement unit tests for all message content models including:
- TextMessageContent (text, emojis, mention, quoteToken, etc.)
- ImageMessageContent (contentProvider, imageSet, quoteToken)
- VideoMessageContent (duration, contentProvider, quoteToken)
- AudioMessageContent (contentProvider, duration)
- LocationMessageContent (title, address, latitude, longitude)
- StickerMessageContent (packageId, stickerId, keywords, etc.)
- FileMessageContent (fileName, fileSize)

Each test verifies instantiation and property getter/setter methods.
Implement unit tests for supporting webhook models:
- Emoji (index, length, productId, emojiId)
- ContentProvider (type, originalContentUrl, previewImageUrl)
- ImageSet (id, index, total)
- Source models (UserSource, GroupSource, RoomSource, Source base class)

These models are used as properties in message content and event models.
Tests verify proper instantiation and property access.
Implement unit tests for webhook event models:
- FollowEvent (replyToken, follow detail)
- JoinEvent (replyToken)
- LeaveEvent (no properties)
- UnfollowEvent (no properties)
- MessageEvent (replyToken, message content)
- Event base class (type, source, timestamp, mode, webhookEventId, deliveryContext)

Tests verify event instantiation and property access for webhook event handling.
Implement unit tests for remaining webhook models including:
- PostbackEvent and PostbackContent (data, params)
- MembershipEvent and MembershipContent (type, membershipId)
- MemberJoinedEvent and MemberLeftEvent (joined/left members)
- JoinedMembers, LeftMembers, and membership content models
- MessageContent base class
- Mention and Mentionee models
- Module, Beacon, AccountLink, and other event types
- DeliveryContext, FollowDetail, ChatControl, and other supporting models

This completes the test coverage for all webhook model classes,
ensuring proper validation of property access and model instantiation.
@Ayoub-Mabrouk Ayoub-Mabrouk force-pushed the implement-webhook-model-tests branch from 8620da6 to 0223c09 Compare December 20, 2025 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants