Skip to content
Snippets Groups Projects
Commit 4c279d0f authored by Eirik Morland's avatar Eirik Morland
Browse files

Issue #3345896: Add method to create a team (with optional member)

parent 66791fa0
No related branches found
No related tags found
1 merge request!7Issue #3345896: Add method to create a team (with optional member)
......@@ -45,6 +45,23 @@ class TeamManager {
return $node_storage->loadMultiple($nids);
}
/**
* Create a team, optionally with the first member of the team.
*/
public function createTeam(string $name, UserInterface $user = NULL) : TeamNode {
/** @var \Drupal\violinist_teams\TeamNode $team */
$team = $this->entityTypeManager->getStorage('node')
->create([
'type' => TeamNode::NODE_TYPE,
'title' => $name,
]);
if ($user) {
$team->appendMember($user);
}
$team->save();
return $team;
}
/**
* Handles user deletions.
*/
......
......@@ -4,6 +4,7 @@ namespace Drupal\Tests\violinist_teams\Kernel;
use Drupal\node\Entity\Node;
use Drupal\user\Entity\User;
use Drupal\violinist_teams\TeamNode;
/**
* Tests for the team manager.
......@@ -91,7 +92,26 @@ class TeamManagerTest extends KernelTestBase {
'type' => $this->nodeType->id(),
]);
self::assertCount(1, $nodes);
}
/**
* Test the creation of teams with the manager.
*/
public function testCreateTeam() {
$user = User::create([
'name' => 'test1',
'mail' => 'test1@example.com',
]);
$user->save();
// Let's create a team from this user.
$team = $this->teamManager->createTeam('my team', $user);
self::assertInstanceOf(TeamNode::class, $team);
self::assertCount(1, $team->getMembers());
self::assertEquals([$user->id()], $team->getMemberIds());
// Also create a team with no user, that should totally be allowed.
$team = $this->teamManager->createTeam('my team');
self::assertInstanceOf(TeamNode::class, $team);
self::assertCount(0, $team->getMembers());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment