ApiUser   A
last analyzed

Complexity

Total Complexity 14

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 14
lcom 1
cbo 0
dl 0
loc 75
ccs 21
cts 21
cp 1
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
B __construct() 0 12 7
A getUsername() 0 3 1
A getPassword() 0 3 1
A getDomain() 0 3 1
A equals() 0 6 4
1
<?php
2
3
namespace Mediawiki\Api;
4
5
use InvalidArgumentException;
6
7
/**
8
 * @since 0.1
9
 *
10
 * @author Addshore
11
 * @author RobinR1
12
 * @author Bene
13
 *
14
 * Represents a user that can log in to the api
15
 */
16
class ApiUser {
17
18
	/**
19
	 * @var string
20
	 */
21
	private $password;
22
23
	/**
24
	 * @var string
25
	 */
26
	private $username;
27
28
	/**
29
	 * @var string
30
	 */
31
	private $domain;
32
33
	/**
34
	 * @param string $username The username.
35
	 * @param string $password The user's password.
36
	 * @param string|null $domain The domain (for authentication systems that support domains).
37
	 *
38
	 * @throws \InvalidArgumentException
39
	 */
40 10
	public function __construct( $username, $password, $domain = null ) {
41 10
		$domainIsStringOrNull = ( is_string( $domain ) || $domain === null );
42 10
		if ( !is_string( $username ) || !is_string( $password ) || !$domainIsStringOrNull ) {
43 5
			throw new InvalidArgumentException( 'Username, Password and Domain must all be strings' );
44
		}
45 5
		if ( empty( $username ) || empty( $password ) ) {
46 3
			throw new InvalidArgumentException( 'Username and Password are not allowed to be empty' );
47
		}
48 2
		$this->username = $username;
49 2
		$this->password = $password;
50 2
		$this->domain   = $domain;
51 2
	}
52
53
	/**
54
	 * @since 0.1
55
	 * @return string
56
	 */
57 8
	public function getUsername() {
58 8
		return $this->username;
59
	}
60
61
	/**
62
	 * @since 0.1
63
	 * @return string
64
	 */
65 6
	public function getPassword() {
66 6
		return $this->password;
67
	}
68
69
	/**
70
	 * @since 0.1
71
	 * @return string
72
	 */
73 4
	public function getDomain() {
74 4
		return $this->domain;
75
	}
76
77
	/**
78
	 * @since 0.1
79
	 * @param mixed $other Another ApiUser object to compare with.
80
	 *
81
	 * @return bool
82
	 */
83 6
	public function equals( $other ) {
84 6
		return $other instanceof self
85 6
			&& $this->username == $other->getUsername()
86 6
			&& $this->password == $other->getPassword()
87 6
			&& $this->domain == $other->getDomain();
88
	}
89
90
}
91