From 12ef51b96ad802a6fb5b81c2e9f7bf91e82ede24 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Barreche Salguero Date: Sun, 6 Nov 2022 13:51:21 +0100 Subject: [PATCH 1/5] build: create Dockerfile and script bash --- .../php-divergent_change-01_base/Dockerfile | 6 ++++ .../php-divergent_change-01_base/scripts.sh | 36 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 examples/php/php-divergent_change-01_base/Dockerfile create mode 100755 examples/php/php-divergent_change-01_base/scripts.sh diff --git a/examples/php/php-divergent_change-01_base/Dockerfile b/examples/php/php-divergent_change-01_base/Dockerfile new file mode 100644 index 00000000..675123a1 --- /dev/null +++ b/examples/php/php-divergent_change-01_base/Dockerfile @@ -0,0 +1,6 @@ +FROM php:7.4 +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer +RUN apt-get update && apt-get install -y git zip unzip + +COPY . app +WORKDIR /app diff --git a/examples/php/php-divergent_change-01_base/scripts.sh b/examples/php/php-divergent_change-01_base/scripts.sh new file mode 100755 index 00000000..9e017976 --- /dev/null +++ b/examples/php/php-divergent_change-01_base/scripts.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +create_docker_image() { + echo "Create docker image image" + docker build . -t refactoring:latest + echo "install libraries" + docker run --rm --interactive --tty --volume $PWD:/app refactoring composer install +} +help() { + echo "./scripts.sh create: Create the docker image" + echo "./scripts.sh test: Run phpunit" +} +run_tests() { + echo "run tests" + docker run --rm --volume $PWD:/app refactoring php /app/vendor/bin/phpunit --colors="always" --no-logging --no-coverage ${args} +} + +case $1 in + removeImage) + echo "remove docker image" + docker rmi refactoring:latest + ;; + createImage) + create_docker_image + ;; + test) + run_tests + ;; + help) + help + ;; + *) + echo "Esta opción $1 no existe." + help + ;; +esac From e498abf2ca4815b84599ec09fadbb96565a00c5d Mon Sep 17 00:00:00 2001 From: Marcos Antonio Barreche Salguero Date: Sun, 6 Nov 2022 21:00:03 +0100 Subject: [PATCH 2/5] refactor: create function hasStock in FlowerStock.ts --- .../ts-stock_management-01_base/src/FlowerStock.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/examples/typescript/ts-stock_management-01_base/src/FlowerStock.ts b/examples/typescript/ts-stock_management-01_base/src/FlowerStock.ts index 32de4ee1..d3353de1 100644 --- a/examples/typescript/ts-stock_management-01_base/src/FlowerStock.ts +++ b/examples/typescript/ts-stock_management-01_base/src/FlowerStock.ts @@ -31,7 +31,7 @@ export class FlowerStock extends AggregateRoot { const flowerId = this.flowers.shift() - if (currentStock >= 50 && this.flowers.length < 50) { + if (this.hasStock(currentStock)) { this.record(new LowStock('low flower stock')) } @@ -47,7 +47,7 @@ export class FlowerStock extends AggregateRoot { const flowerIds: Array = this.flowers.splice(0, amount) - if (currentStock >= 50 && this.flowers.length < 50) { + if (this.hasStock(currentStock)) { this.record(new LowStock(`low flower stock produced by high demand: ${amount}`)) } @@ -59,8 +59,12 @@ export class FlowerStock extends AggregateRoot { this.flowers = this.flowers.filter(flowerId => !deadFlowers.includes(flowerId)) - if (currentStock >= 50 && this.flowers.length < 50) { + if (this.hasStock(currentStock)) { this.record(new LowStock(`low flower stock produced by ${deadFlowers.length} dead flowers`)) } } + + private hasStock(currentStock: number): boolean { + return currentStock >= 50 && this.flowers.length < 50; + } } \ No newline at end of file From db47abe8c5cd6a4eb8ca001f05b85f11e691f5ac Mon Sep 17 00:00:00 2001 From: Marcos Antonio Barreche Salguero Date: Sun, 6 Nov 2022 21:04:54 +0100 Subject: [PATCH 3/5] refactor: create a constant MAX_STOCK In FlowerStock.test.ts --- .../tests/FlowerStock.test.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts b/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts index aaa31297..496bea20 100644 --- a/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts +++ b/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts @@ -3,6 +3,7 @@ import { LowStock } from "../src/LowStock" import { NotEnoughStock } from "../src/NotEnoughStock" import { OutOfStock } from "../src/OutOfStock" +const MAX_STOCK = 50; describe('flower stock management', () => { it('should add a flower to the stock', () => { @@ -34,7 +35,7 @@ describe('flower stock management', () => { }) it('should reach low stock when getting a single flower from a stock of 50', () => { - const stockFlowerIds = makeFlowerIds(50) + const stockFlowerIds = makeFlowerIds(MAX_STOCK) const stock = new FlowerStock(stockFlowerIds) stock.get() @@ -46,7 +47,7 @@ describe('flower stock management', () => { }) it('should not reach low stock when getting a single flower from a stock greater than 50', () => { - const flowerIds = makeFlowerIds(51) + const flowerIds = makeFlowerIds(MAX_STOCK + 1) const stock = new FlowerStock(flowerIds) stock.get() @@ -71,10 +72,9 @@ describe('flower stock management', () => { }) it('should reach low stock when getting multiple flowers and the limit of 50 is exceeded', () => { - const lowStockLevel = 50 const unitsToLowStock = 5 const unitsToGetFromTheStock = 6 - const totalStock = lowStockLevel + unitsToLowStock + const totalStock = MAX_STOCK + unitsToLowStock const stockFlowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(stockFlowerIds) @@ -87,10 +87,9 @@ describe('flower stock management', () => { }) it('should not reach low stock when getting multiple flowers and the limit of 50 is not exceeded', () => { - const lowStockLimit = 50 const unitsToLowStock = 5 const unitsToGetFromTheStock = 5 - const totalStock = lowStockLimit + unitsToLowStock + const totalStock = MAX_STOCK + unitsToLowStock const flowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(flowerIds) @@ -119,10 +118,9 @@ describe('flower stock management', () => { it('should reach low stock when removing dead flowers and the limit of 50 is exceeded', () => { - const lowStockLevel = 50 const unitsToLowStock = 5 const totalDeadFlowers = 6 - const totalStock = lowStockLevel + unitsToLowStock + const totalStock = MAX_STOCK + unitsToLowStock const stockFlowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(stockFlowerIds) @@ -136,10 +134,9 @@ describe('flower stock management', () => { }) it('should not reach low stock when removing flowers and the limit of 50 is not exceeded', () => { - const lowStockLimit = 50 const unitsToLowStock = 5 const totalDeadFlowers = 5 - const totalStock = lowStockLimit + unitsToLowStock + const totalStock = MAX_STOCK + unitsToLowStock const flowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(flowerIds) From 6c85efbad8e2398773a433bfc9ac886ea9d6c724 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Barreche Salguero Date: Sun, 6 Nov 2022 21:12:18 +0100 Subject: [PATCH 4/5] Revert "build: create Dockerfile and script bash" This reverts commit 12ef51b96ad802a6fb5b81c2e9f7bf91e82ede24. --- .../php-divergent_change-01_base/Dockerfile | 6 ---- .../php-divergent_change-01_base/scripts.sh | 36 ------------------- 2 files changed, 42 deletions(-) delete mode 100644 examples/php/php-divergent_change-01_base/Dockerfile delete mode 100755 examples/php/php-divergent_change-01_base/scripts.sh diff --git a/examples/php/php-divergent_change-01_base/Dockerfile b/examples/php/php-divergent_change-01_base/Dockerfile deleted file mode 100644 index 675123a1..00000000 --- a/examples/php/php-divergent_change-01_base/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM php:7.4 -COPY --from=composer:latest /usr/bin/composer /usr/bin/composer -RUN apt-get update && apt-get install -y git zip unzip - -COPY . app -WORKDIR /app diff --git a/examples/php/php-divergent_change-01_base/scripts.sh b/examples/php/php-divergent_change-01_base/scripts.sh deleted file mode 100755 index 9e017976..00000000 --- a/examples/php/php-divergent_change-01_base/scripts.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -create_docker_image() { - echo "Create docker image image" - docker build . -t refactoring:latest - echo "install libraries" - docker run --rm --interactive --tty --volume $PWD:/app refactoring composer install -} -help() { - echo "./scripts.sh create: Create the docker image" - echo "./scripts.sh test: Run phpunit" -} -run_tests() { - echo "run tests" - docker run --rm --volume $PWD:/app refactoring php /app/vendor/bin/phpunit --colors="always" --no-logging --no-coverage ${args} -} - -case $1 in - removeImage) - echo "remove docker image" - docker rmi refactoring:latest - ;; - createImage) - create_docker_image - ;; - test) - run_tests - ;; - help) - help - ;; - *) - echo "Esta opción $1 no existe." - help - ;; -esac From dff995702f77e0d7e065a8d9060772eab3559ba7 Mon Sep 17 00:00:00 2001 From: Marcos Antonio Barreche Salguero Date: Sun, 6 Nov 2022 21:14:36 +0100 Subject: [PATCH 5/5] refactor: rename constant MAX_STOCK to MIN_STOCK_LEVEL --- .../tests/FlowerStock.test.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts b/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts index 496bea20..0bd3f613 100644 --- a/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts +++ b/examples/typescript/ts-stock_management-01_base/tests/FlowerStock.test.ts @@ -3,7 +3,7 @@ import { LowStock } from "../src/LowStock" import { NotEnoughStock } from "../src/NotEnoughStock" import { OutOfStock } from "../src/OutOfStock" -const MAX_STOCK = 50; +const MIN_STOCK_LEVEL = 50; describe('flower stock management', () => { it('should add a flower to the stock', () => { @@ -35,7 +35,7 @@ describe('flower stock management', () => { }) it('should reach low stock when getting a single flower from a stock of 50', () => { - const stockFlowerIds = makeFlowerIds(MAX_STOCK) + const stockFlowerIds = makeFlowerIds(MIN_STOCK_LEVEL) const stock = new FlowerStock(stockFlowerIds) stock.get() @@ -47,7 +47,7 @@ describe('flower stock management', () => { }) it('should not reach low stock when getting a single flower from a stock greater than 50', () => { - const flowerIds = makeFlowerIds(MAX_STOCK + 1) + const flowerIds = makeFlowerIds(MIN_STOCK_LEVEL + 1) const stock = new FlowerStock(flowerIds) stock.get() @@ -74,7 +74,7 @@ describe('flower stock management', () => { it('should reach low stock when getting multiple flowers and the limit of 50 is exceeded', () => { const unitsToLowStock = 5 const unitsToGetFromTheStock = 6 - const totalStock = MAX_STOCK + unitsToLowStock + const totalStock = MIN_STOCK_LEVEL + unitsToLowStock const stockFlowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(stockFlowerIds) @@ -89,7 +89,7 @@ describe('flower stock management', () => { it('should not reach low stock when getting multiple flowers and the limit of 50 is not exceeded', () => { const unitsToLowStock = 5 const unitsToGetFromTheStock = 5 - const totalStock = MAX_STOCK + unitsToLowStock + const totalStock = MIN_STOCK_LEVEL + unitsToLowStock const flowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(flowerIds) @@ -120,7 +120,7 @@ describe('flower stock management', () => { it('should reach low stock when removing dead flowers and the limit of 50 is exceeded', () => { const unitsToLowStock = 5 const totalDeadFlowers = 6 - const totalStock = MAX_STOCK + unitsToLowStock + const totalStock = MIN_STOCK_LEVEL + unitsToLowStock const stockFlowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(stockFlowerIds) @@ -136,7 +136,7 @@ describe('flower stock management', () => { it('should not reach low stock when removing flowers and the limit of 50 is not exceeded', () => { const unitsToLowStock = 5 const totalDeadFlowers = 5 - const totalStock = MAX_STOCK + unitsToLowStock + const totalStock = MIN_STOCK_LEVEL + unitsToLowStock const flowerIds = makeFlowerIds(totalStock) const stock = new FlowerStock(flowerIds)