Skip to content

Commit

Permalink
v1.0.0 (2023-04-06)
Browse files Browse the repository at this point in the history
  • Loading branch information
smeghead committed Apr 6, 2023
1 parent 2f95860 commit f101ee3
Show file tree
Hide file tree
Showing 13 changed files with 263 additions and 157 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# CHANGELOG

## v1.0.0 (2023-04-06)


## v0.6.1 (2023-04-03)

### Features
Expand Down
6 changes: 4 additions & 2 deletions src/DiagramElement/Division/DivisionColor.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

namespace Smeghead\PhpClassDiagram\DiagramElement\Division;

class DivisionColor {
class DivisionColor
{
private static $gen;
public static function nextColor(): string {
public static function nextColor(): string
{
if (empty(self::$gen)) {
self::$gen = generateDivisionColorGenerator();
}
Expand Down
6 changes: 0 additions & 6 deletions src/DiagramElement/ExternalPackage/PackageHierarchy.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,13 @@

class PackageHierarchy
{
/**
* @var string[] external packages.
*/
private array $externalPackages;

private PackageNode $root;

/**
* @param string[] $externalPackages external package list
*/
public function __construct(array $externalPackages)
{
$this->externalPackages = $externalPackages;
$this->root = new PackageNode('root');
foreach ($externalPackages as $p) {
$this->root->register(explode('.', $p));
Expand Down
2 changes: 1 addition & 1 deletion src/Main.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

class Main
{
const VERSION = 'v0.6.1';
const VERSION = 'v1.0.0';

public function __construct(string $directory, Options $options)
{
Expand Down
1 change: 0 additions & 1 deletion src/Php/PhpAccessModifier.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

namespace Smeghead\PhpClassDiagram\Php;

use PhpParser\Node\Stmt;
use PhpParser\Node\Stmt\{
ClassConst,
ClassMethod,
Expand Down
5 changes: 2 additions & 3 deletions test/ClassDiagramClassNameSummaryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public function testClassnameWithSummary(): void
$entries[] = new Entry('product', PhpReader::parseFile($directory, $filename, $options)[0]->getInfo(), $options);

$rel = new Relation($entries, $options);
$expected =<<<EOS
$expected = <<<EOS
@startuml class-diagram
package product as product {
class "Product\\n<b>製品</b>" as product_Product {
Expand Down Expand Up @@ -67,7 +67,7 @@ public function testClassnameWithoutSummary(): void
$entries[] = new Entry('product', PhpReader::parseFile($directory, $filename, $options)[0]->getInfo(), $options);

$rel = new Relation($entries, $options);
$expected =<<<EOS
$expected = <<<EOS
@startuml class-diagram
package product as product {
class "Product" as product_Product {
Expand All @@ -89,5 +89,4 @@ class "Name" as product_Name {
EOS;
$this->assertSame($expected, implode(PHP_EOL, $rel->dump()), 'output PlantUML script.');
}

}
114 changes: 69 additions & 45 deletions test/OptionsTest.php
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
<?php declare(strict_types=1);
<?php

declare(strict_types=1);

use PHPUnit\Framework\TestCase;

use Smeghead\PhpClassDiagram\Config\Options;

final class OptionsTest extends TestCase {
public function setUp(): void {
final class OptionsTest extends TestCase
{
public function setUp(): void
{
}

public function testNothing(): void {
$opt = [
];
public function testNothing(): void
{
$opt = [];

$options = new Options($opt);

$this->assertNotNull($options, 'initialize Options');
$this->assertSame(false, $options->help(), 'help is off.');
}
public function testH(): void {
public function testH(): void
{
$opt = [
'h' => true,
];
Expand All @@ -26,7 +32,8 @@ public function testH(): void {
$this->assertNotNull($options, 'initialize Options');
$this->assertSame(true, $options->help(), 'help is on.');
}
public function testHelp(): void {
public function testHelp(): void
{
$opt = [
'help' => true,
];
Expand All @@ -36,7 +43,8 @@ public function testHelp(): void {
$this->assertNotNull($options, 'initialize Options');
$this->assertSame(true, $options->help(), 'help is on.');
}
public function testClassProperties1(): void {
public function testClassProperties1(): void
{
$opt = [
'enable-class-properties' => true,
];
Expand All @@ -45,7 +53,8 @@ public function testClassProperties1(): void {

$this->assertSame(true, $options->classProperties(), 'classProperties is on.');
}
public function testClassProperties2(): void {
public function testClassProperties2(): void
{
$opt = [
'disable-class-properties' => true,
];
Expand All @@ -54,15 +63,16 @@ public function testClassProperties2(): void {

$this->assertSame(false, $options->classProperties(), 'classProperties is off.');
}
public function testClassProperties3(): void {
$opt = [
];
public function testClassProperties3(): void
{
$opt = [];

$options = new Options($opt);

$this->assertSame(true, $options->classProperties(), 'classProperties is default on.');
}
public function testClassMethods1(): void {
public function testClassMethods1(): void
{
$opt = [
'enable-class-methods' => true,
];
Expand All @@ -71,7 +81,8 @@ public function testClassMethods1(): void {

$this->assertSame(true, $options->classMethods(), 'classMethods is on.');
}
public function testClassMethods2(): void {
public function testClassMethods2(): void
{
$opt = [
'disable-class-methods' => true,
];
Expand All @@ -80,16 +91,17 @@ public function testClassMethods2(): void {

$this->assertSame(false, $options->classMethods(), 'classMethods is off.');
}
public function testClassMethods3(): void {
$opt = [
];
public function testClassMethods3(): void
{
$opt = [];

$options = new Options($opt);

$this->assertSame(true, $options->classMethods(), 'classMethods is default on.');
}

public function testClassNameSummary1(): void {
public function testClassNameSummary1(): void
{
$opt = [
'enable-class-name-summary' => true,
];
Expand All @@ -98,7 +110,8 @@ public function testClassNameSummary1(): void {

$this->assertSame(true, $options->classNameSummary(), 'classNameSummary is on.');
}
public function testClassNameSummary2(): void {
public function testClassNameSummary2(): void
{
$opt = [
'disable-class-name-summary' => true,
];
Expand All @@ -107,17 +120,18 @@ public function testClassNameSummary2(): void {

$this->assertSame(false, $options->classNameSummary(), 'classNameSummary is off.');
}
public function testClassNameSummary3(): void {
$opt = [
];
public function testClassNameSummary3(): void
{
$opt = [];

$options = new Options($opt);

$this->assertSame(true, $options->classNameSummary(), 'classNameSummary is default on.');
}


public function testPhp1(): void {
public function testPhp1(): void
{
$opt = [
'php7' => true,
];
Expand All @@ -126,7 +140,8 @@ public function testPhp1(): void {

$this->assertSame(Options::PHP7, $options->phpVersion(), 'php version is 7.');
}
public function testPhp2(): void {
public function testPhp2(): void
{
$opt = [
'php8' => true,
];
Expand All @@ -135,7 +150,8 @@ public function testPhp2(): void {

$this->assertSame(Options::PHP8, $options->phpVersion(), 'php version is 8.');
}
public function testDiagram1(): void {
public function testDiagram1(): void
{
$opt = [
'class-diagram' => true,
];
Expand All @@ -144,7 +160,8 @@ public function testDiagram1(): void {

$this->assertSame(Options::DIAGRAM_CLASS, $options->diagram(), 'diagram is class.');
}
public function testDiagram2(): void {
public function testDiagram2(): void
{
$opt = [
'package-diagram' => true,
];
Expand All @@ -153,7 +170,8 @@ public function testDiagram2(): void {

$this->assertSame(Options::DIAGRAM_PACKAGE, $options->diagram(), 'diagram is package.');
}
public function testDiagram_division(): void {
public function testDiagram_division(): void
{
$opt = [
'division-diagram' => true,
];
Expand All @@ -162,15 +180,16 @@ public function testDiagram_division(): void {

$this->assertSame(Options::DIAGRAM_DIVSION, $options->diagram(), 'diagram is division.');
}
public function testDiagram3(): void {
$opt = [
];
public function testDiagram3(): void
{
$opt = [];

$options = new Options($opt);

$this->assertSame(Options::DIAGRAM_CLASS, $options->diagram(), 'default diagram is class.');
}
public function testDiagram4(): void {
public function testDiagram4(): void
{
$opt = [
'jig-diagram' => true,
];
Expand All @@ -179,7 +198,8 @@ public function testDiagram4(): void {

$this->assertSame(Options::DIAGRAM_JIG, $options->diagram(), 'diagram is jig.');
}
public function testHeader(): void {
public function testHeader(): void
{
$opt = [
'header' => 'title PHP Class Diagram',
];
Expand All @@ -188,7 +208,8 @@ public function testHeader(): void {

$this->assertSame('title PHP Class Diagram', $options->headers()[0], 'specified header.');
}
public function testMultipleHeaders(): void {
public function testMultipleHeaders(): void
{
$opt = [
'header' => [
'title PHP Class Diagram',
Expand All @@ -201,7 +222,8 @@ public function testMultipleHeaders(): void {
$this->assertSame('title PHP Class Diagram', $options->headers()[0], 'specified header. title');
$this->assertSame('skinparam pageMargin 10', $options->headers()[1], 'specified header. pageMargin');
}
public function testInclude(): void {
public function testInclude(): void
{
$opt = [
'include' => '*.php8',
];
Expand All @@ -210,7 +232,8 @@ public function testInclude(): void {

$this->assertSame('*.php8', $options->includes()[0], 'specified include.');
}
public function testMultipleInclude(): void {
public function testMultipleInclude(): void
{
$opt = [
'include' => [
'*.php7',
Expand All @@ -223,15 +246,16 @@ public function testMultipleInclude(): void {
$this->assertSame('*.php7', $options->includes()[0], 'specified include. php7');
$this->assertSame('*.php8', $options->includes()[1], 'specified include. php8');
}
public function testIncludeDefault(): void {
$opt = [
];
public function testIncludeDefault(): void
{
$opt = [];

$options = new Options($opt);

$this->assertSame('*.php', $options->includes()[0], 'default include.');
}
public function testexclude(): void {
public function testexclude(): void
{
$opt = [
'exclude' => '*Exception.php',
];
Expand All @@ -240,7 +264,8 @@ public function testexclude(): void {

$this->assertSame('*Exception.php', $options->excludes()[0], 'specified exclude.');
}
public function testMultipleExclude(): void {
public function testMultipleExclude(): void
{
$opt = [
'exclude' => [
'*Exception.php',
Expand All @@ -253,13 +278,12 @@ public function testMultipleExclude(): void {
$this->assertSame('*Exception.php', $options->excludes()[0], 'specified exclude. *Exception.php');
$this->assertSame('config.php', $options->excludes()[1], 'specified exclude. config.php');
}
public function testExcludeDefault(): void {
$opt = [
];
public function testExcludeDefault(): void
{
$opt = [];

$options = new Options($opt);

$this->assertSame(0, count($options->excludes()), 'default exclude is empty.');
}

}
Loading

0 comments on commit f101ee3

Please sign in to comment.