| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- <?php
- namespace Tests\Unit\AppGame;
- use App\Module\AppGame\Handler\Shop\BuyHandler;
- use Tests\TestCase;
- use Uraus\Kku\Request\RequestShopBuy;
- use Uraus\Kku\Response\ResponseShopBuy;
- /**
- * 商品购买Handler测试
- */
- class BuyHandlerTest extends TestCase
- {
- /**
- * 测试RequestShopBuy请求对象
- */
- public function testRequestShopBuyStructure()
- {
- $request = new RequestShopBuy();
- // 测试设置商品ID
- $request->setGoodId(1001);
- $this->assertEquals(1001, $request->getGoodId());
- // 测试设置购买数量
- $request->setNumber(5);
- $this->assertEquals(5, $request->getNumber());
- }
- /**
- * 测试RequestShopBuy默认值
- */
- public function testRequestShopBuyDefaultValues()
- {
- $request = new RequestShopBuy();
- // 测试默认值
- $this->assertEquals(0, $request->getGoodId());
- $this->assertEquals(0, $request->getNumber());
- }
- /**
- * 测试ResponseShopBuy响应对象
- */
- public function testResponseShopBuyStructure()
- {
- $response = new ResponseShopBuy();
- // 验证响应对象可以正常创建
- $this->assertInstanceOf(ResponseShopBuy::class, $response);
- }
- /**
- * 测试BuyHandler类结构
- */
- public function testBuyHandlerStructure()
- {
- // 由于BuyHandler需要Response参数,我们只测试类是否存在
- $this->assertTrue(class_exists(BuyHandler::class));
- // 验证BuyHandler是BaseHandler的子类
- $reflection = new \ReflectionClass(BuyHandler::class);
- $this->assertTrue($reflection->isSubclassOf(\App\Module\AppGame\Handler\BaseHandler::class));
- }
- /**
- * 测试购买请求参数验证
- */
- public function testBuyRequestValidation()
- {
- $request = new RequestShopBuy();
- // 测试有效的购买参数
- $validGoodIds = [1, 100, 1000, 9999];
- $validNumbers = [1, 5, 10, 99];
- foreach ($validGoodIds as $goodId) {
- $request->setGoodId($goodId);
- $this->assertEquals($goodId, $request->getGoodId());
- $this->assertTrue($request->getGoodId() > 0);
- }
- foreach ($validNumbers as $number) {
- $request->setNumber($number);
- $this->assertEquals($number, $request->getNumber());
- $this->assertTrue($request->getNumber() > 0);
- }
- }
- /**
- * 测试无效的购买参数
- */
- public function testInvalidBuyParameters()
- {
- $request = new RequestShopBuy();
- // 测试无效的商品ID
- $invalidGoodIds = [0, -1, -100];
- foreach ($invalidGoodIds as $goodId) {
- $request->setGoodId($goodId);
- $this->assertEquals($goodId, $request->getGoodId());
- $this->assertFalse($request->getGoodId() > 0);
- }
- // 测试无效的购买数量
- $invalidNumbers = [0, -1, -10];
- foreach ($invalidNumbers as $number) {
- $request->setNumber($number);
- $this->assertEquals($number, $request->getNumber());
- $this->assertFalse($request->getNumber() > 0);
- }
- }
- /**
- * 测试购买请求数据完整性
- */
- public function testBuyRequestDataIntegrity()
- {
- $request = new RequestShopBuy();
- // 设置完整的购买请求数据
- $goodId = 1001;
- $number = 5;
- $request->setGoodId($goodId);
- $request->setNumber($number);
- // 验证数据完整性
- $this->assertEquals($goodId, $request->getGoodId());
- $this->assertEquals($number, $request->getNumber());
- // 验证这是一个完整的购买请求
- $this->assertTrue($request->getGoodId() > 0);
- $this->assertTrue($request->getNumber() > 0);
- }
- /**
- * 测试边界值
- */
- public function testBoundaryValues()
- {
- $request = new RequestShopBuy();
- // 测试最小有效值
- $minValidValue = 1;
- $request->setGoodId($minValidValue);
- $request->setNumber($minValidValue);
- $this->assertEquals($minValidValue, $request->getGoodId());
- $this->assertEquals($minValidValue, $request->getNumber());
- // 测试较大值
- $largeValue = 999999;
- $request->setGoodId($largeValue);
- $request->setNumber($largeValue);
- $this->assertEquals($largeValue, $request->getGoodId());
- $this->assertEquals($largeValue, $request->getNumber());
- }
- /**
- * 测试多次设置值
- */
- public function testMultipleValueSetting()
- {
- $request = new RequestShopBuy();
- // 多次设置商品ID
- $request->setGoodId(100);
- $this->assertEquals(100, $request->getGoodId());
- $request->setGoodId(200);
- $this->assertEquals(200, $request->getGoodId());
- // 多次设置购买数量
- $request->setNumber(1);
- $this->assertEquals(1, $request->getNumber());
- $request->setNumber(10);
- $this->assertEquals(10, $request->getNumber());
- }
- }
|