173 lines
6.2 KiB
PHP
173 lines
6.2 KiB
PHP
<?php
|
|
|
|
use App\Container;
|
|
use App\Event;
|
|
use App\Item;
|
|
use App\File;
|
|
|
|
class ItemTest extends TestCase
|
|
{
|
|
/**
|
|
* A basic test example.
|
|
*
|
|
* @return void
|
|
*/
|
|
|
|
public function testEmpty()
|
|
{
|
|
$event = Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$this->get('/1/EVENT/items');
|
|
$this->assertResponseOk();
|
|
$this->assertEquals('[]',$this->response->getContent());
|
|
}
|
|
|
|
public function testMembers()
|
|
{
|
|
$event = Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$box = Container::create(['name'=>'BOX']);
|
|
Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'1']);
|
|
|
|
$this->get('/1/EVENT/items');
|
|
$response = $this->response->getOriginalContent();
|
|
|
|
$this->assertResponseOk();
|
|
$this->assertEquals(1, count($response));
|
|
$this->assertEquals(1, $response[0]['uid']);
|
|
$this->assertEquals('1', $response[0]['description']);
|
|
$this->assertEquals($box->name, $response[0]['box']);
|
|
$this->assertEquals($box->cid, $response[0]['cid']);
|
|
$this->assertEquals(null, $response[0]['file']);
|
|
}
|
|
|
|
public function testMembersWithFile()
|
|
{
|
|
$event = Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$box = Container::create(['name'=>'BOX']);
|
|
$item = Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'1']);
|
|
$file = File::create(['iid'=>$item->iid, 'data'=>",".base64_encode("foo")]);
|
|
|
|
$this->get('/1/EVENT/items');
|
|
$response = $this->response->getOriginalContent();
|
|
|
|
$this->assertResponseOk();
|
|
$this->assertEquals(1, count($response));
|
|
$this->assertEquals(1, $response[0]['uid']);
|
|
$this->assertEquals('1', $response[0]['description']);
|
|
$this->assertEquals($box->name, $response[0]['box']);
|
|
$this->assertEquals($box->cid, $response[0]['cid']);
|
|
$this->assertEquals($file->hash, $response[0]['file']);
|
|
}
|
|
|
|
public function testmultiMembers()
|
|
{
|
|
$event = Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$box = Container::create(['name'=>'BOX']);
|
|
Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'1']);
|
|
Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'2']);
|
|
Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'3']);
|
|
|
|
$this->get('/1/EVENT/items');
|
|
$response = $this->response->getOriginalContent();
|
|
|
|
$this->assertResponseOk();
|
|
$this->assertEquals(3, count($response));
|
|
}
|
|
|
|
public function testCreateItem(){
|
|
|
|
Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$box = Container::create(['name'=>'BOX']);
|
|
$this->post('/1/EVENT/item',['cid'=>$box->cid, 'description'=>'1']);
|
|
$response = $this->response->getOriginalContent();
|
|
|
|
$this->assertResponseStatus(201);
|
|
$this->assertEquals(1, $response['uid']);
|
|
$this->assertEquals('1', $response['description']);
|
|
$this->assertEquals($box->name, $response['box']);
|
|
$this->assertEquals($box->cid, $response['cid']);
|
|
//$this->assertEquals('filename', $response['file']);
|
|
|
|
$items = Item::all();
|
|
$this->assertEquals(1, count($items));
|
|
$this->assertEquals(1, $items[0]['uid']);
|
|
$this->assertEquals('1', $items[0]['description']);
|
|
$this->assertEquals($box->name, $items[0]['box']);
|
|
$this->assertEquals($box->cid, $items[0]['cid']);
|
|
//$this->assertEquals('filename', $items[0]['file']);
|
|
}
|
|
|
|
public function testCreateItemFail(){
|
|
|
|
Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$box = Container::create(['name'=>'BOX']);
|
|
$this->post('/1/EVENT/item',[]);
|
|
$response = $this->response->getOriginalContent();
|
|
|
|
$this->assertResponseStatus(500);
|
|
}
|
|
|
|
public function testUpdateItem(){
|
|
|
|
$event = Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$box = Container::create(['name'=>'BOX']);
|
|
$item = Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'1']);
|
|
|
|
$this->assertEquals(1, $item['uid']);
|
|
$this->assertEquals('1', $item['description']);
|
|
$this->assertEquals($box->cid, $item['cid']);
|
|
|
|
$this->put('/1/EVENT/item/'.$item->uid,['description'=>'2']);
|
|
$response = $this->response->getOriginalContent();
|
|
|
|
$this->assertResponseOk();
|
|
$this->assertEquals(1, $response['uid']);
|
|
$this->assertEquals('2', $response['description']);
|
|
$this->assertEquals($box->name, $response['box']);
|
|
$this->assertEquals($box->cid, $response['cid']);
|
|
//$this->assertEquals('filename', $response['file']);
|
|
|
|
$items = Item::all();
|
|
$this->assertEquals(1, count($items));
|
|
$this->assertEquals(1, $items[0]['uid']);
|
|
$this->assertEquals('2', $items[0]['description']);
|
|
$this->assertEquals($box->name, $items[0]['box']);
|
|
$this->assertEquals($box->cid, $items[0]['cid']);
|
|
//$this->assertEquals('filename', $items[0]['file']);
|
|
}
|
|
|
|
public function testDeleteItem(){
|
|
$event = Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$box = Container::create(['name'=>'BOX']);
|
|
$item = Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'1']);
|
|
Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'2']);
|
|
|
|
$this->assertEquals(2, count(Item::all()));
|
|
|
|
$this->delete('/1/EVENT/item/'.$item->uid);
|
|
|
|
$this->assertResponseOk();
|
|
$this->assertEquals(1, count(Item::all()));
|
|
}
|
|
|
|
public function testDeleteItem2(){
|
|
$event = Event::create(['slug'=>'EVENT','name'=>'Event']);
|
|
$box = Container::create(['name'=>'BOX']);
|
|
|
|
Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'1']);
|
|
$item2 = Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'2']);
|
|
|
|
$this->assertEquals(2, count(Item::all()));
|
|
|
|
$this->delete('/1/EVENT/item/'.$item2->uid);
|
|
|
|
$this->assertResponseOk();
|
|
$this->assertEquals(1, count(Item::all()));
|
|
|
|
$item3 = Item::create(['cid'=>$box->cid, 'eid' => $event->eid, 'description'=>'3']);
|
|
|
|
$this->assertEquals(3, $item3['uid']);
|
|
$this->assertEquals(2, count(Item::all()));
|
|
|
|
}
|
|
|
|
}
|