1
0
Fork 0
mirror of https://codeberg.org/demostf/api.git synced 2026-06-03 18:04:08 +02:00

store kills directly with players

This commit is contained in:
Robin Appelman 2021-05-24 14:34:43 +02:00
commit 6d01061c58
11 changed files with 83 additions and 84 deletions

View file

@ -138,7 +138,7 @@ class DemoListProviderTest extends TestCase {
}
private function addPlayer($demoId, $userId) {
$player = new Player(0, $demoId, 0, $userId, 'foo', 'red', 'scout');
$player = new Player(0, $demoId, 0, $userId, 'foo', 'red', 'scout', 1, 2, 3);
$this->playerProvider->store($player);
}

View file

@ -5,11 +5,9 @@ declare(strict_types=1);
namespace Demostf\API\Test\Providers;
use Demostf\API\Data\DemoPlayer;
use Demostf\API\Data\Kill;
use Demostf\API\Data\Player;
use Demostf\API\Demo\Demo;
use Demostf\API\Providers\DemoProvider;
use Demostf\API\Providers\KillProvider;
use Demostf\API\Providers\PlayerProvider;
use Demostf\API\Providers\UserProvider;
use Demostf\API\Test\TestCase;
@ -24,16 +22,12 @@ class DemoProviderTest extends TestCase {
/** @var PlayerProvider */
private $playerProvider;
/** @var KillProvider */
private $killProvider;
public function setUp(): void {
parent::setUp();
$this->userProvider = new UserProvider($this->getDatabaseConnection(), $this->getRandomGenerator());
$this->provider = new DemoProvider($this->getDatabaseConnection(), $this->userProvider);
$this->playerProvider = new PlayerProvider($this->getDatabaseConnection());
$this->killProvider = new KillProvider($this->getDatabaseConnection());
}
public function testGetNonExisting() {
@ -124,14 +118,10 @@ class DemoProviderTest extends TestCase {
);
$id = $this->provider->storeDemo($demo, 'dummy', 'path');
$player1 = $this->addPlayer($id, 101, $user1->getId(), 'red', 'scout');
$player2 = $this->addPlayer($id, 102, $user2->getId(), 'red', 'soldier');
$player3 = $this->addPlayer($id, 103, $user3->getId(), 'blue', 'engineer');
$player4 = $this->addPlayer($id, 104, $user4->getId(), 'blue', 'spy');
$this->addKill($id, $user1->getId(), 0, $user3->getId());
$this->addKill($id, $user1->getId(), $user2->getId(), $user3->getId());
$this->addKill($id, $user4->getId(), 0, $user1->getId());
$player1 = $this->addPlayer($id, 101, $user1->getId(), 'red', 'scout', 2, 0, 1);
$player2 = $this->addPlayer($id, 102, $user2->getId(), 'red', 'soldier', 0, 1, 0);
$player3 = $this->addPlayer($id, 103, $user3->getId(), 'blue', 'engineer', 0, 0, 2);
$player4 = $this->addPlayer($id, 104, $user4->getId(), 'blue', 'spy', 1, 0, 0);
$retrieved = $this->provider->get($id, true);
$this->assertInstanceOf(Demo::class, $retrieved);
@ -149,18 +139,22 @@ class DemoProviderTest extends TestCase {
], $players);
}
private function addPlayer(int $demoId, int $demoUserId, int $userId, string $team, string $class): int {
$player = new Player(0, $demoId, $demoUserId, $userId, 'user_' . $userId, $team, $class);
private function addPlayer(
int $demoId,
int $demoUserId,
int $userId,
string $team,
string $class,
int $kills,
int $assist,
int $deaths
): int {
$player = new Player(0, $demoId, $demoUserId, $userId, 'user_' . $userId, $team, $class, $kills, $assist,
$deaths);
return $this->playerProvider->store($player);
}
private function addKill(int $demoId, int $attackerId, int $assisterId, int $victimId): int {
$kill = new Kill(0, $demoId, $attackerId, $assisterId, $victimId);
return $this->killProvider->store($kill);
}
public function testSetDemoUrl() {
$uploaderSteamId = $this->getSteamId('12345', 'test');
$this->userProvider->store($uploaderSteamId, 'test');

View file

@ -16,7 +16,6 @@ use Demostf\API\Demo\RawParser;
use Demostf\API\Error\InvalidKeyException;
use Demostf\API\Providers\ChatProvider;
use Demostf\API\Providers\DemoProvider;
use Demostf\API\Providers\KillProvider;
use Demostf\API\Providers\PlayerProvider;
use Demostf\API\Providers\UploadProvider;
use Demostf\API\Providers\UserProvider;
@ -76,7 +75,6 @@ class UploadProviderTest extends TestCase {
$this->userProvider = new UserProvider($this->getDatabaseConnection(), $this->getRandomGenerator());
$this->demoProvider = new DemoProvider($this->getDatabaseConnection(), $this->userProvider);
$this->demoSaver = new DemoSaver(
new KillProvider($this->getDatabaseConnection()),
new PlayerProvider($this->getDatabaseConnection()),
new ChatProvider($this->getDatabaseConnection()),
$this->userProvider,

View file

@ -75,7 +75,10 @@ class UserProviderTest extends TestCase {
$user->getId(),
$user->getName(),
'red',
'scout'
'scout',
1,
1,
1
));
$this->getDatabaseConnection()->query('REFRESH MATERIALIZED VIEW name_list');