mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-06-10 02:38:30 +00:00
Delete code except Java
This commit is contained in:
parent
34a1fba37b
commit
5ff91ae88e
6
Ada/.gitignore
vendored
6
Ada/.gitignore
vendored
@ -1,6 +0,0 @@
|
|||||||
*.o
|
|
||||||
*.ali
|
|
||||||
b~*.ads
|
|
||||||
b~*.adb
|
|
||||||
program
|
|
||||||
gilded_rose_tester
|
|
||||||
23
Ada/Makefile
23
Ada/Makefile
@ -1,23 +0,0 @@
|
|||||||
AHVEN_INCLUDE:=-aI/usr/share/ada/adainclude/ahven -aI/usr/include/ahven
|
|
||||||
AHVEN_LIBS:=-aO/usr/lib/x86_64-linux-gnu/ada/adalib/ahven -aO/usr/lib/ahven -aO/usr/lib -shared
|
|
||||||
ADAFLAGS:=-gnat2012 $(AHVEN_INCLUDE) $(AHVEN_LIBS)
|
|
||||||
LIBS:=-largs -lahven
|
|
||||||
|
|
||||||
.PHONY: all
|
|
||||||
all: gilded_rose_tester program
|
|
||||||
|
|
||||||
.PHONY: gilded_rose_tester
|
|
||||||
gilded_rose_tester:
|
|
||||||
@gnatmake -q $(ADAFLAGS) gilded_rose_tester $(LIBS)
|
|
||||||
|
|
||||||
.PHONY: test
|
|
||||||
test: gilded_rose_tester
|
|
||||||
@./gilded_rose_tester
|
|
||||||
|
|
||||||
.PHONY: program
|
|
||||||
program:
|
|
||||||
@gnatmake -q $(ADAFLAGS) program $(LIBS)
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
clean:
|
|
||||||
@gnatclean -q gilded_rose_tester program
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
You will need the following programs:
|
|
||||||
|
|
||||||
- GNU make (on Debian-like systems do 'apt-get install make')
|
|
||||||
- gcc with Ada enabled ('apt-get install gnat')
|
|
||||||
- the ahven unit-test framework ('apt-get install libahven5-dev')
|
|
||||||
|
|
||||||
'make test' runs your tests once.
|
|
||||||
|
|
||||||
@ -1,373 +0,0 @@
|
|||||||
OMGHAI!
|
|
||||||
-------- day 0 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 10, 20
|
|
||||||
Aged Brie, 2, 0
|
|
||||||
Elixir of the Mongoose, 5, 7
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 15, 20
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 10, 49
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 5, 49
|
|
||||||
Conjured Mana Cake, 3, 6
|
|
||||||
|
|
||||||
-------- day 1 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 9, 19
|
|
||||||
Aged Brie, 1, 1
|
|
||||||
Elixir of the Mongoose, 4, 6
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 14, 21
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 9, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 4, 50
|
|
||||||
Conjured Mana Cake, 2, 5
|
|
||||||
|
|
||||||
-------- day 2 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 8, 18
|
|
||||||
Aged Brie, 0, 2
|
|
||||||
Elixir of the Mongoose, 3, 5
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 13, 22
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 8, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 3, 50
|
|
||||||
Conjured Mana Cake, 1, 4
|
|
||||||
|
|
||||||
-------- day 3 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 7, 17
|
|
||||||
Aged Brie, -1, 4
|
|
||||||
Elixir of the Mongoose, 2, 4
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 12, 23
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 7, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 2, 50
|
|
||||||
Conjured Mana Cake, 0, 3
|
|
||||||
|
|
||||||
-------- day 4 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 6, 16
|
|
||||||
Aged Brie, -2, 6
|
|
||||||
Elixir of the Mongoose, 1, 3
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 11, 24
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 6, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 1, 50
|
|
||||||
Conjured Mana Cake, -1, 1
|
|
||||||
|
|
||||||
-------- day 5 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 5, 15
|
|
||||||
Aged Brie, -3, 8
|
|
||||||
Elixir of the Mongoose, 0, 2
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 10, 25
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 5, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
|
||||||
Conjured Mana Cake, -2, 0
|
|
||||||
|
|
||||||
-------- day 6 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 4, 14
|
|
||||||
Aged Brie, -4, 10
|
|
||||||
Elixir of the Mongoose, -1, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 9, 27
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 4, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
|
||||||
Conjured Mana Cake, -3, 0
|
|
||||||
|
|
||||||
-------- day 7 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 3, 13
|
|
||||||
Aged Brie, -5, 12
|
|
||||||
Elixir of the Mongoose, -2, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 8, 29
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 3, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
|
||||||
Conjured Mana Cake, -4, 0
|
|
||||||
|
|
||||||
-------- day 8 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 2, 12
|
|
||||||
Aged Brie, -6, 14
|
|
||||||
Elixir of the Mongoose, -3, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 7, 31
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 2, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
|
||||||
Conjured Mana Cake, -5, 0
|
|
||||||
|
|
||||||
-------- day 9 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 1, 11
|
|
||||||
Aged Brie, -7, 16
|
|
||||||
Elixir of the Mongoose, -4, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 6, 33
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 1, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
|
||||||
Conjured Mana Cake, -6, 0
|
|
||||||
|
|
||||||
-------- day 10 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, 0, 10
|
|
||||||
Aged Brie, -8, 18
|
|
||||||
Elixir of the Mongoose, -5, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 5, 35
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
|
||||||
Conjured Mana Cake, -7, 0
|
|
||||||
|
|
||||||
-------- day 11 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -1, 8
|
|
||||||
Aged Brie, -9, 20
|
|
||||||
Elixir of the Mongoose, -6, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 4, 38
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
|
||||||
Conjured Mana Cake, -8, 0
|
|
||||||
|
|
||||||
-------- day 12 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -2, 6
|
|
||||||
Aged Brie, -10, 22
|
|
||||||
Elixir of the Mongoose, -7, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 3, 41
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
|
||||||
Conjured Mana Cake, -9, 0
|
|
||||||
|
|
||||||
-------- day 13 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -3, 4
|
|
||||||
Aged Brie, -11, 24
|
|
||||||
Elixir of the Mongoose, -8, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 2, 44
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
|
||||||
Conjured Mana Cake, -10, 0
|
|
||||||
|
|
||||||
-------- day 14 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -4, 2
|
|
||||||
Aged Brie, -12, 26
|
|
||||||
Elixir of the Mongoose, -9, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 1, 47
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
|
||||||
Conjured Mana Cake, -11, 0
|
|
||||||
|
|
||||||
-------- day 15 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -5, 0
|
|
||||||
Aged Brie, -13, 28
|
|
||||||
Elixir of the Mongoose, -10, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, 0, 50
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
|
||||||
Conjured Mana Cake, -12, 0
|
|
||||||
|
|
||||||
-------- day 16 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -6, 0
|
|
||||||
Aged Brie, -14, 30
|
|
||||||
Elixir of the Mongoose, -11, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -1, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
|
||||||
Conjured Mana Cake, -13, 0
|
|
||||||
|
|
||||||
-------- day 17 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -7, 0
|
|
||||||
Aged Brie, -15, 32
|
|
||||||
Elixir of the Mongoose, -12, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -2, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
|
||||||
Conjured Mana Cake, -14, 0
|
|
||||||
|
|
||||||
-------- day 18 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -8, 0
|
|
||||||
Aged Brie, -16, 34
|
|
||||||
Elixir of the Mongoose, -13, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -3, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
|
||||||
Conjured Mana Cake, -15, 0
|
|
||||||
|
|
||||||
-------- day 19 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -9, 0
|
|
||||||
Aged Brie, -17, 36
|
|
||||||
Elixir of the Mongoose, -14, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -4, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
|
||||||
Conjured Mana Cake, -16, 0
|
|
||||||
|
|
||||||
-------- day 20 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -10, 0
|
|
||||||
Aged Brie, -18, 38
|
|
||||||
Elixir of the Mongoose, -15, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -5, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
|
||||||
Conjured Mana Cake, -17, 0
|
|
||||||
|
|
||||||
-------- day 21 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -11, 0
|
|
||||||
Aged Brie, -19, 40
|
|
||||||
Elixir of the Mongoose, -16, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -6, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -16, 0
|
|
||||||
Conjured Mana Cake, -18, 0
|
|
||||||
|
|
||||||
-------- day 22 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -12, 0
|
|
||||||
Aged Brie, -20, 42
|
|
||||||
Elixir of the Mongoose, -17, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -7, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -17, 0
|
|
||||||
Conjured Mana Cake, -19, 0
|
|
||||||
|
|
||||||
-------- day 23 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -13, 0
|
|
||||||
Aged Brie, -21, 44
|
|
||||||
Elixir of the Mongoose, -18, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -8, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -18, 0
|
|
||||||
Conjured Mana Cake, -20, 0
|
|
||||||
|
|
||||||
-------- day 24 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -14, 0
|
|
||||||
Aged Brie, -22, 46
|
|
||||||
Elixir of the Mongoose, -19, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -9, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -19, 0
|
|
||||||
Conjured Mana Cake, -21, 0
|
|
||||||
|
|
||||||
-------- day 25 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -15, 0
|
|
||||||
Aged Brie, -23, 48
|
|
||||||
Elixir of the Mongoose, -20, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -10, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -20, 0
|
|
||||||
Conjured Mana Cake, -22, 0
|
|
||||||
|
|
||||||
-------- day 26 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -16, 0
|
|
||||||
Aged Brie, -24, 50
|
|
||||||
Elixir of the Mongoose, -21, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -11, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -16, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -21, 0
|
|
||||||
Conjured Mana Cake, -23, 0
|
|
||||||
|
|
||||||
-------- day 27 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -17, 0
|
|
||||||
Aged Brie, -25, 50
|
|
||||||
Elixir of the Mongoose, -22, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -12, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -17, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -22, 0
|
|
||||||
Conjured Mana Cake, -24, 0
|
|
||||||
|
|
||||||
-------- day 28 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -18, 0
|
|
||||||
Aged Brie, -26, 50
|
|
||||||
Elixir of the Mongoose, -23, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -13, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -18, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -23, 0
|
|
||||||
Conjured Mana Cake, -25, 0
|
|
||||||
|
|
||||||
-------- day 29 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -19, 0
|
|
||||||
Aged Brie, -27, 50
|
|
||||||
Elixir of the Mongoose, -24, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -14, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -19, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -24, 0
|
|
||||||
Conjured Mana Cake, -26, 0
|
|
||||||
|
|
||||||
-------- day 30 --------
|
|
||||||
name, sellIn, quality
|
|
||||||
+5 Dexterity Vest, -20, 0
|
|
||||||
Aged Brie, -28, 50
|
|
||||||
Elixir of the Mongoose, -25, 0
|
|
||||||
Sulfuras, Hand of Ragnaros, 0, 80
|
|
||||||
Sulfuras, Hand of Ragnaros, -1, 80
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -15, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -20, 0
|
|
||||||
Backstage passes to a TAFKAL80ETC concert, -25, 0
|
|
||||||
Conjured Mana Cake, -27, 0
|
|
||||||
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
with Ada.Strings.Unbounded;
|
|
||||||
use Ada.Strings.Unbounded;
|
|
||||||
|
|
||||||
package body Gilded_Rose is
|
|
||||||
procedure Update_Quality(Self : in out Gilded_Rose) is
|
|
||||||
Cursor : Item_Vecs.Cursor := Item_Vecs.First(Self.Items);
|
|
||||||
begin
|
|
||||||
while Item_Vecs.Has_Element(Cursor) loop
|
|
||||||
if Self.Items(Cursor).Name /= To_Unbounded_String("Aged Brie")
|
|
||||||
and Self.Items(Cursor).Name /= To_Unbounded_String("Backstage passes to a TAFKAL80ETC concert") then
|
|
||||||
if Self.Items(Cursor).Quality > 0 then
|
|
||||||
if Self.Items(Cursor).Name /= To_Unbounded_String("Sulfuras, Hand of Ragnaros") then
|
|
||||||
Self.Items(Cursor).Quality := Self.Items(Cursor).Quality - 1;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
else
|
|
||||||
if Self.Items(Cursor).Quality < 50 then
|
|
||||||
Self.Items(Cursor).Quality := Self.Items(Cursor).Quality + 1;
|
|
||||||
|
|
||||||
if Self.Items(Cursor).Name = To_Unbounded_String("Backstage passes to a TAFKAL80ETC concert") then
|
|
||||||
if Self.Items(Cursor).Sell_In < 11 then
|
|
||||||
if Self.Items(Cursor).Quality < 50 then
|
|
||||||
Self.Items(Cursor).Quality := Self.Items(Cursor).Quality + 1;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
if Self.Items(Cursor).Sell_In < 6 then
|
|
||||||
if Self.Items(Cursor).Quality < 50 then
|
|
||||||
Self.Items(Cursor).Quality := Self.Items(Cursor).Quality + 1;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
if Self.Items(Cursor).Name /= To_Unbounded_String("Sulfuras, Hand of Ragnaros") then
|
|
||||||
Self.Items(Cursor).Sell_In := Self.Items(Cursor).Sell_In - 1;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
if Self.Items(Cursor).Sell_In < 0 then
|
|
||||||
if Self.Items(Cursor).Name /= To_Unbounded_String("Aged Brie") then
|
|
||||||
if Self.Items(Cursor).Name /= To_Unbounded_String("Backstage passes to a TAFKAL80ETC concert") then
|
|
||||||
if Self.Items(Cursor).Quality > 0 then
|
|
||||||
if Self.Items(Cursor).Name /= To_Unbounded_String("Sulfuras, Hand of Ragnaros") then
|
|
||||||
Self.Items(Cursor).Quality := Self.Items(Cursor).Quality - 1;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
else
|
|
||||||
Self.Items(Cursor).Quality := Self.Items(Cursor).Quality - Self.Items(Cursor).Quality;
|
|
||||||
end if;
|
|
||||||
else
|
|
||||||
if Self.Items(Cursor).Quality < 50 then
|
|
||||||
Self.Items(Cursor).Quality := Self.Items(Cursor).Quality + 1;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
Item_Vecs.Next(Cursor);
|
|
||||||
end loop;
|
|
||||||
end;
|
|
||||||
|
|
||||||
end Gilded_Rose;
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
with Ada.Containers.Vectors;
|
|
||||||
with Items;
|
|
||||||
use Items;
|
|
||||||
|
|
||||||
package Gilded_Rose is
|
|
||||||
package Item_Vecs is new Ada.Containers.Vectors (
|
|
||||||
Element_Type => Item,
|
|
||||||
Index_Type => Positive
|
|
||||||
);
|
|
||||||
|
|
||||||
type Gilded_Rose is record
|
|
||||||
Items : Item_Vecs.Vector;
|
|
||||||
end record;
|
|
||||||
procedure Update_Quality(Self : in out Gilded_Rose);
|
|
||||||
end Gilded_Rose;
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
with Ahven.Text_Runner;
|
|
||||||
with Ahven.Framework;
|
|
||||||
with Gilded_Rose_Tests;
|
|
||||||
|
|
||||||
procedure Gilded_Rose_Tester is
|
|
||||||
S : Ahven.Framework.Test_Suite := Ahven.Framework.Create_Suite("All");
|
|
||||||
begin
|
|
||||||
Ahven.Framework.Add_Test(S, new Gilded_Rose_Tests.Test);
|
|
||||||
Ahven.Text_Runner.Run(S);
|
|
||||||
end Gilded_Rose_Tester;
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
with Gilded_Rose;
|
|
||||||
use Gilded_Rose;
|
|
||||||
|
|
||||||
with Items;
|
|
||||||
use Items;
|
|
||||||
|
|
||||||
with Ahven;
|
|
||||||
|
|
||||||
with Ada.Strings.Unbounded;
|
|
||||||
|
|
||||||
package body Gilded_Rose_Tests is
|
|
||||||
procedure Initialize(T : in out Test) is
|
|
||||||
begin
|
|
||||||
Set_Name(T, "Gilded_Rose_Test");
|
|
||||||
Ahven.Framework.Add_Test_Routine(T, Test_Gilded_Rose'Access, "Foo");
|
|
||||||
end Initialize;
|
|
||||||
|
|
||||||
procedure Test_Gilded_Rose is
|
|
||||||
Things : Item_Vecs.Vector;
|
|
||||||
begin
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => SU.To_Unbounded_String("Foo"),
|
|
||||||
Sell_In => 0,
|
|
||||||
Quality => 0));
|
|
||||||
declare
|
|
||||||
App : Gilded_Rose.Gilded_Rose := (Items => Things);
|
|
||||||
|
|
||||||
package SU renames Ada.Strings.Unbounded;
|
|
||||||
procedure Assert_Eq_Unbounded_String is
|
|
||||||
new Ahven.Assert_Equal(Data_Type => SU.Unbounded_String, Image => SU.To_String);
|
|
||||||
begin
|
|
||||||
Update_Quality(App);
|
|
||||||
Assert_Eq_Unbounded_String(Actual => App.Items(Item_Vecs.First(App.Items)).Name,
|
|
||||||
Expected => SU.To_Unbounded_String("fixme"),
|
|
||||||
Message => "fixme");
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end Gilded_Rose_Tests;
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
with Ahven.Framework;
|
|
||||||
|
|
||||||
package Gilded_Rose_Tests is
|
|
||||||
type Test is new Ahven.Framework.Test_Case with null record;
|
|
||||||
|
|
||||||
procedure Initialize(T : in out Test);
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
procedure Test_Gilded_Rose;
|
|
||||||
end Gilded_Rose_Tests;
|
|
||||||
@ -1,31 +0,0 @@
|
|||||||
with Ada.Strings.Unbounded;
|
|
||||||
use Ada.Strings.Unbounded;
|
|
||||||
|
|
||||||
package body Items is
|
|
||||||
function Integer_Image(Self : in Integer) return String is
|
|
||||||
Img : constant String := Integer'Image(Self);
|
|
||||||
begin
|
|
||||||
if Self < 0 then
|
|
||||||
return Img;
|
|
||||||
else
|
|
||||||
return Img(2 .. Img'Length);
|
|
||||||
end if;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function To_String(Self : in Item) return String is
|
|
||||||
Name : constant Unbounded_String := Self.Name;
|
|
||||||
Sell_In : constant Unbounded_String := To_Unbounded_String(Integer_Image(Self.Sell_In));
|
|
||||||
Quality : constant Unbounded_String := To_Unbounded_String(Integer_Image(Self.Quality));
|
|
||||||
|
|
||||||
Ret : Unbounded_String;
|
|
||||||
begin
|
|
||||||
Append(Ret, Name);
|
|
||||||
Append(Ret, ", ");
|
|
||||||
Append(Ret, Sell_In);
|
|
||||||
Append(Ret, ", ");
|
|
||||||
Append(Ret, Quality);
|
|
||||||
|
|
||||||
return To_String(Ret);
|
|
||||||
end;
|
|
||||||
|
|
||||||
end Items;
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
with Ada.Strings.Unbounded;
|
|
||||||
|
|
||||||
package Items is
|
|
||||||
package SU renames Ada.Strings.Unbounded;
|
|
||||||
|
|
||||||
type Item is record
|
|
||||||
Name : SU.Unbounded_String;
|
|
||||||
Sell_In : Integer;
|
|
||||||
Quality : Integer;
|
|
||||||
end record;
|
|
||||||
|
|
||||||
function To_String(Self : in Item) return String;
|
|
||||||
|
|
||||||
end Items;
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
with Ada.Text_IO;
|
|
||||||
use Ada.Text_IO;
|
|
||||||
|
|
||||||
with Items;
|
|
||||||
use Items;
|
|
||||||
|
|
||||||
with Ada.Strings.Unbounded;
|
|
||||||
use Ada.Strings.Unbounded;
|
|
||||||
|
|
||||||
with Gilded_Rose;
|
|
||||||
use Gilded_Rose;
|
|
||||||
|
|
||||||
procedure Program is
|
|
||||||
Things : Item_Vecs.Vector;
|
|
||||||
begin
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("+5 Dexterity Vest"),
|
|
||||||
Sell_In => 10,
|
|
||||||
Quality => 20));
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("Aged Brie"),
|
|
||||||
Sell_In => 2,
|
|
||||||
Quality => 0));
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("Elixir of the Mongoose"),
|
|
||||||
Sell_In => 5,
|
|
||||||
Quality => 7));
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("Sulfuras, Hand of Ragnaros"),
|
|
||||||
Sell_In => 0,
|
|
||||||
Quality => 80));
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("Sulfuras, Hand of Ragnaros"),
|
|
||||||
Sell_In => -1,
|
|
||||||
Quality => 80));
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("Backstage passes to a TAFKAL80ETC concert"),
|
|
||||||
Sell_In => 15,
|
|
||||||
Quality => 20));
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("Backstage passes to a TAFKAL80ETC concert"),
|
|
||||||
Sell_In => 10,
|
|
||||||
Quality => 49));
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("Backstage passes to a TAFKAL80ETC concert"),
|
|
||||||
Sell_In => 5,
|
|
||||||
Quality => 49));
|
|
||||||
-- this conjured item does not work properly yet
|
|
||||||
Things.Append(New_Item =>
|
|
||||||
(Name => To_Unbounded_String("Conjured Mana Cake"),
|
|
||||||
Sell_In => 3,
|
|
||||||
Quality => 6));
|
|
||||||
|
|
||||||
|
|
||||||
declare
|
|
||||||
App : Gilded_Rose.Gilded_Rose := (Items => Things);
|
|
||||||
begin
|
|
||||||
Put_Line("OMGHAI!");
|
|
||||||
|
|
||||||
for I in 0 .. 30 loop
|
|
||||||
Put_Line("-------- day" & Integer'Image(I) & " --------");
|
|
||||||
Put_Line("name, sellIn, quality");
|
|
||||||
|
|
||||||
for Each of App.Items loop
|
|
||||||
Put_Line(To_String(Each));
|
|
||||||
end loop;
|
|
||||||
Put_Line("");
|
|
||||||
|
|
||||||
Update_Quality(App);
|
|
||||||
end loop;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
@ -1,98 +0,0 @@
|
|||||||
#include <string.h>
|
|
||||||
#include "GildedRose.h"
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
Item*
|
|
||||||
init_item(Item* item, const char *name, int sellIn, int quality)
|
|
||||||
{
|
|
||||||
item->sellIn = sellIn;
|
|
||||||
item->quality = quality;
|
|
||||||
item->name = strdup(name);
|
|
||||||
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
|
|
||||||
extern char*
|
|
||||||
print_item(char* buffer, Item* item)
|
|
||||||
{
|
|
||||||
sprintf(buffer, "%s, %d, %d", item->name, item->sellIn, item->quality);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
update_quality(Item items[], int size)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < size; i++)
|
|
||||||
{
|
|
||||||
if (strcmp(items[i].name, "Aged Brie") && strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert"))
|
|
||||||
{
|
|
||||||
if (items[i].quality > 0)
|
|
||||||
{
|
|
||||||
if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros"))
|
|
||||||
{
|
|
||||||
items[i].quality = items[i].quality - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (items[i].quality < 50)
|
|
||||||
{
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
|
|
||||||
if (!strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert"))
|
|
||||||
{
|
|
||||||
if (items[i].sellIn < 11)
|
|
||||||
{
|
|
||||||
if (items[i].quality < 50)
|
|
||||||
{
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 6)
|
|
||||||
{
|
|
||||||
if (items[i].quality < 50)
|
|
||||||
{
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros"))
|
|
||||||
{
|
|
||||||
items[i].sellIn = items[i].sellIn - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 0)
|
|
||||||
{
|
|
||||||
if (strcmp(items[i].name, "Aged Brie"))
|
|
||||||
{
|
|
||||||
if (strcmp(items[i].name, "Backstage passes to a TAFKAL80ETC concert"))
|
|
||||||
{
|
|
||||||
if (items[i].quality > 0)
|
|
||||||
{
|
|
||||||
if (strcmp(items[i].name, "Sulfuras, Hand of Ragnaros"))
|
|
||||||
{
|
|
||||||
items[i].quality = items[i].quality - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
items[i].quality = items[i].quality - items[i].quality;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (items[i].quality < 50)
|
|
||||||
{
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
#ifndef ROSE_INCLUDED
|
|
||||||
#define ROSE_INCLUDED
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
char *name;
|
|
||||||
int sellIn;
|
|
||||||
int quality;
|
|
||||||
} Item;
|
|
||||||
|
|
||||||
extern Item* init_item(Item* item, const char *name, int sellIn, int quality);
|
|
||||||
extern void update_quality(Item items[], int size);
|
|
||||||
extern char* print_item(char* buffer, Item* item);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
#include "GildedRose.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
print_item(Item *item)
|
|
||||||
{
|
|
||||||
return printf("%s, %d, %d\n", item->name, item->sellIn, item->quality);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
Item items[9];
|
|
||||||
int last = 0;
|
|
||||||
int day;
|
|
||||||
int index;
|
|
||||||
|
|
||||||
init_item(items + last++, "+5 Dexterity Vest", 10, 20);
|
|
||||||
init_item(items + last++, "Aged Brie", 2, 0);
|
|
||||||
init_item(items + last++, "Elixir of the Mongoose", 5, 7);
|
|
||||||
init_item(items + last++, "Sulfuras, Hand of Ragnaros", 0, 80);
|
|
||||||
init_item(items + last++, "Sulfuras, Hand of Ragnaros", -1, 80);
|
|
||||||
init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 15, 20);
|
|
||||||
init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 10, 49);
|
|
||||||
init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 5, 49);
|
|
||||||
// this Conjured item doesn't yet work properly
|
|
||||||
init_item(items + last++, "Conjured Mana Cake", 3, 6);
|
|
||||||
|
|
||||||
puts("OMGHAI!");
|
|
||||||
|
|
||||||
for (day = 0; day <= 30; day++)
|
|
||||||
{
|
|
||||||
printf("-------- day %d --------\n", day);
|
|
||||||
printf("name, sellIn, quality\n");
|
|
||||||
for(index = 0; index < last; index++) {
|
|
||||||
print_item(items + index);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
update_quality(items, last);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
#include <CppUTest/TestHarness.h>
|
|
||||||
#include <CppUTest/CommandLineTestRunner.h>
|
|
||||||
#include <CppUTestExt/MockSupport.h>
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
#include "GildedRose.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_GROUP(TestGildedRoseGroup)
|
|
||||||
{
|
|
||||||
void setup() {
|
|
||||||
}
|
|
||||||
void teardown() {
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
TEST(TestGildedRoseGroup, FirstTest)
|
|
||||||
{
|
|
||||||
Item items[1];
|
|
||||||
init_item(items, "Foo", 0, 0);
|
|
||||||
update_quality(items, 1);
|
|
||||||
STRCMP_EQUAL("fixme", items[0].name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void example()
|
|
||||||
{
|
|
||||||
Item items[6];
|
|
||||||
int last = 0;
|
|
||||||
|
|
||||||
init_item(items + last++, "+5 Dexterity Vest", 10, 20);
|
|
||||||
init_item(items + last++, "Aged Brie", 2, 0);
|
|
||||||
init_item(items + last++, "Elixir of the Mongoose", 5, 7);
|
|
||||||
init_item(items + last++, "Sulfuras, Hand of Ragnaros", 0, 80);
|
|
||||||
init_item(items + last++, "Backstage passes to a TAFKAL80ETC concert", 15, 20);
|
|
||||||
init_item(items + last++, "Conjured Mana Cake", 3, 6);
|
|
||||||
update_quality(items, last);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int ac, char** av)
|
|
||||||
{
|
|
||||||
return CommandLineTestRunner::RunAllTests(ac, av);
|
|
||||||
}
|
|
||||||
51
C/Makefile
51
C/Makefile
@ -1,51 +0,0 @@
|
|||||||
# Makefile for building the kata file with the Google Testing Framework
|
|
||||||
#
|
|
||||||
# SYNOPSIS:
|
|
||||||
#
|
|
||||||
# make [all] - makes everything.
|
|
||||||
# make TARGET - makes the given target.
|
|
||||||
# make clean - removes all files generated by make.
|
|
||||||
|
|
||||||
# Please tweak the following variable definitions as needed by your
|
|
||||||
# project.
|
|
||||||
|
|
||||||
# Points to the root of CppUTest, relative to where this file is.
|
|
||||||
# Remember to tweak this if you move this file.
|
|
||||||
CPPUTEST_HOME = CppUTest
|
|
||||||
|
|
||||||
# Where to find user code.
|
|
||||||
USER_DIR = .
|
|
||||||
|
|
||||||
# Flags passed to the preprocessor.
|
|
||||||
CPPFLAGS += -I$(CPPUTEST_HOME)/include
|
|
||||||
|
|
||||||
# Flags passed to the C++ compiler.
|
|
||||||
CFLAGS += -g -Wall -Wextra
|
|
||||||
|
|
||||||
LD_LIBRARIES = -L$(CPPUTEST_HOME)/lib -lCppUTest
|
|
||||||
|
|
||||||
# All tests produced by this Makefile. Remember to add new tests you
|
|
||||||
# created to the list.
|
|
||||||
TESTS = GildedRoseUnitTests
|
|
||||||
|
|
||||||
TEXTTESTS = GildedRoseTextTests
|
|
||||||
|
|
||||||
# House-keeping build targets.
|
|
||||||
|
|
||||||
all : $(TESTS) $(TEXTTESTS)
|
|
||||||
|
|
||||||
GildedRose.o : $(USER_DIR)/GildedRose.c
|
|
||||||
|
|
||||||
GildedRoseUnitTests : $(USER_DIR)/GildedRoseUnitTests.cc GildedRose.o
|
|
||||||
$(CXX) $(CPPFLAGS) $(CFLAGS) -o $@ $(USER_DIR)/GildedRoseUnitTests.cc GildedRose.o $(LD_LIBRARIES)
|
|
||||||
|
|
||||||
GildedRoseTextTests.o : $(USER_DIR)/GildedRoseTextTests.c
|
|
||||||
|
|
||||||
GildedRoseTextTests : GildedRoseTextTests.o GildedRose.o
|
|
||||||
$(CC) $^ -o $@
|
|
||||||
|
|
||||||
clean :
|
|
||||||
rm -f $(TESTS) $(TEXTTESTS) *.o *~
|
|
||||||
|
|
||||||
check-syntax:
|
|
||||||
gcc $(CPPFLAGS) -o /dev/null -S ${CHK_SOURCES}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
run-once.sh runs your tests once
|
|
||||||
|
|
||||||
Assumptions:
|
|
||||||
- make and a C++ compiler (like gcc) is installed on your system and is in the PATH
|
|
||||||
- The CppUTest framework is in the directory CppUTest
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
make
|
|
||||||
./GildedRoseTextTests
|
|
||||||
1
COBOL/Gnu/.gitignore
vendored
1
COBOL/Gnu/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
*.so
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
program-id. Add as "Add".
|
|
||||||
|
|
||||||
environment division.
|
|
||||||
|
|
||||||
input-output section.
|
|
||||||
|
|
||||||
file-control.
|
|
||||||
select in-items assign 'in-items'.
|
|
||||||
|
|
||||||
data division.
|
|
||||||
file section.
|
|
||||||
fd in-items.
|
|
||||||
01 item.
|
|
||||||
02 sell-in pic s9(2).
|
|
||||||
02 quality pic s9(2).
|
|
||||||
02 name pic x(50).
|
|
||||||
|
|
||||||
working-storage section.
|
|
||||||
01 accept-item.
|
|
||||||
02 sell-in pic s9(2).
|
|
||||||
02 quality pic s9(2).
|
|
||||||
02 name pic x(50).
|
|
||||||
|
|
||||||
|
|
||||||
procedure division.
|
|
||||||
open extend in-items.
|
|
||||||
display "name"
|
|
||||||
accept name in accept-item.
|
|
||||||
display "sell-in"
|
|
||||||
accept sell-in in accept-item.
|
|
||||||
display "quality"
|
|
||||||
accept quality in accept-item.
|
|
||||||
move accept-item to item.
|
|
||||||
write item.
|
|
||||||
close in-items.
|
|
||||||
goback.
|
|
||||||
|
|
||||||
end program Add.
|
|
||||||
@ -1,77 +0,0 @@
|
|||||||
program-id. GildedRose as "GildedRose".
|
|
||||||
|
|
||||||
environment division.
|
|
||||||
|
|
||||||
input-output section.
|
|
||||||
|
|
||||||
file-control.
|
|
||||||
select in-items assign 'in-items'.
|
|
||||||
select items assign 'items'.
|
|
||||||
|
|
||||||
data division.
|
|
||||||
file section.
|
|
||||||
fd in-items.
|
|
||||||
01 in-item pic x(54).
|
|
||||||
fd items.
|
|
||||||
01 item.
|
|
||||||
02 sell-in pic s9(2).
|
|
||||||
02 quality pic s9(2).
|
|
||||||
02 name pic x(50).
|
|
||||||
|
|
||||||
working-storage section.
|
|
||||||
procedure division.
|
|
||||||
open input in-items output items.
|
|
||||||
start-lable.
|
|
||||||
read in-items end go to end-lable.
|
|
||||||
move in-item to item.
|
|
||||||
if name not equal "Aged Brie" and name not equal "Backstage passes to a TAFKAL80ETC concert"
|
|
||||||
if quality > 0
|
|
||||||
if name not equal to "Sulfuras, Hand of Ragnaros"
|
|
||||||
compute quality = quality - 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
else
|
|
||||||
if quality < 50
|
|
||||||
compute quality = quality + 1
|
|
||||||
if name equals "Backstage passes to a TAFKAL80ETC concert"
|
|
||||||
if sell-in < 11
|
|
||||||
if quality < 50
|
|
||||||
compute quality = quality + 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
if sell-in < 6
|
|
||||||
if quality < 50
|
|
||||||
compute quality = quality + 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
if name not equal "Sulfuras, Hand of Ragnaros"
|
|
||||||
compute sell-in = sell-in - 1
|
|
||||||
end-if
|
|
||||||
if sell-in < 0
|
|
||||||
if name is not equal to "Aged Brie"
|
|
||||||
if name is not equal to "Backstage passes to a TAFKAL80ETC concert"
|
|
||||||
if quality > 0
|
|
||||||
if name is equal to "Sulfuras, Hand of Ragnaros"
|
|
||||||
compute quality = quality - 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
else
|
|
||||||
compute quality = quality - quality
|
|
||||||
end-if
|
|
||||||
else
|
|
||||||
if quality < 50
|
|
||||||
compute quality = quality + 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
write item.
|
|
||||||
go to start-lable.
|
|
||||||
end-lable.
|
|
||||||
close items.
|
|
||||||
close in-items.
|
|
||||||
goback.
|
|
||||||
|
|
||||||
end program GildedRose.
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
touch in-items
|
|
||||||
cobcrun Add
|
|
||||||
@ -1 +0,0 @@
|
|||||||
cobc --free --std=mf -O *.cbl
|
|
||||||
@ -1 +0,0 @@
|
|||||||
cobcrun GildedRose
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
./build.sh
|
|
||||||
./run.sh
|
|
||||||
@ -1,169 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xsi:schemaLocation="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="cobolProject" name="Gilded Rose" uuid="3529a385-3bb5-4b82-9b84-9e384fb2bdd4" version="4.0">
|
|
||||||
<settings xsi:type="projectSettingsContainer">
|
|
||||||
<copybook-paths xsi:type="copybookPathsSettings">
|
|
||||||
<path enabled="true" name="/Gilded Rose" type="mfpath"/>
|
|
||||||
</copybook-paths>
|
|
||||||
<build-precedence-paths xsi:type="buildPrecedenceSettings">
|
|
||||||
<path enabled="true" name="/Gilded Rose" type="mfpath"/>
|
|
||||||
</build-precedence-paths>
|
|
||||||
<configurations default="Gilded Rose" linkedWith="2017" xsi:type="buildConfigurationsContainer">
|
|
||||||
<configuration description="Gilded Rose" type="all_intgnt" is64bit="false" createlbr="false" platform="Windows" xsi:type="cobolBuildConfiguration">
|
|
||||||
<targetdir name="Gilded Rose.bin"/>
|
|
||||||
<application_configuration xsi:type="runtimeConfigurationSettings">
|
|
||||||
<cobol_switches xsi:type="projectCobolSwitches"/>
|
|
||||||
<rts_switches xsi:type="projectRtsSwitches"/>
|
|
||||||
<envScriptParameters></envScriptParameters>
|
|
||||||
<envScriptPath></envScriptPath>
|
|
||||||
<inheritBuildEnv>false</inheritBuildEnv>
|
|
||||||
<tunables>
|
|
||||||
<tunable index="0" name="screen_lines" value="25"/>
|
|
||||||
<tunable index="0" name="screen_cols" value="80"/>
|
|
||||||
<tunable index="0" name="default_cancel_mode" value="1"/>
|
|
||||||
<tunable index="0" name="program_search_order" value="4"/>
|
|
||||||
<tunable index="0" name="arguments_are_initial" value="false"/>
|
|
||||||
<tunable index="0" name="command_line_accept" value="false"/>
|
|
||||||
<tunable index="0" name="sort_memory" value="0"/>
|
|
||||||
<tunable index="0" name="dynamic_memory_limit" value="2147483647"/>
|
|
||||||
<tunable index="0" name="memory_free_check_size" value="100"/>
|
|
||||||
<tunable index="0" name="memory_strategy" value="1"/>
|
|
||||||
<tunable index="0" name="ansi_input_mode" value="false"/>
|
|
||||||
<tunable index="0" name="current_year" value="0"/>
|
|
||||||
<tunable index="0" name="current_month" value="0"/>
|
|
||||||
<tunable index="0" name="current_day" value="0"/>
|
|
||||||
<tunable index="0" name="datewarp_dynamic" value="false"/>
|
|
||||||
<tunable index="0" name="current_hour" value="-1"/>
|
|
||||||
<tunable index="0" name="current_minute" value="-1"/>
|
|
||||||
<tunable index="0" name="current_second" value="-1"/>
|
|
||||||
<tunable index="0" name="timewarp_dynamic" value="false"/>
|
|
||||||
</tunables>
|
|
||||||
</application_configuration>
|
|
||||||
<link_settings xsi:type="linkSettings">
|
|
||||||
<additional_options value=""/>
|
|
||||||
<rts_bind value="false"/>
|
|
||||||
<custom_link_command value=""/>
|
|
||||||
<debug value="false"/>
|
|
||||||
<entry_point name=""/>
|
|
||||||
<entry_point_runtime value="false"/>
|
|
||||||
<error_undefined_syms value="false"/>
|
|
||||||
<application_type value="console"/>
|
|
||||||
<include_cpp value="false"/>
|
|
||||||
<additional_files/>
|
|
||||||
<rcfile path=""/>
|
|
||||||
<rts_type value="shared"/>
|
|
||||||
<target name="Gilded Rose"/>
|
|
||||||
<targettype type="exe"/>
|
|
||||||
<threaded_rts value="true"/>
|
|
||||||
<verbose value="false"/>
|
|
||||||
</link_settings>
|
|
||||||
</configuration>
|
|
||||||
</configurations>
|
|
||||||
<cobol_settings xsi:type="cobolSettings">
|
|
||||||
<options>
|
|
||||||
<option name="WARNING" value="1"/>
|
|
||||||
<option name="DIALECT" value="MF"/>
|
|
||||||
<option name="CHARSET" value="ASCII"/>
|
|
||||||
<option name="SOURCEFORMAT" value="free"/>
|
|
||||||
<option name="MAX-ERROR" value="100"/>
|
|
||||||
</options>
|
|
||||||
<createJar value="false"/>
|
|
||||||
<createJarAfterBuild value="false"/>
|
|
||||||
<debug value="true"/>
|
|
||||||
<enableCodeCoverage value="true"/>
|
|
||||||
<enableProfiler value="false"/>
|
|
||||||
<generate value="false"/>
|
|
||||||
<retainDirectivesFile value="false"/>
|
|
||||||
<genListFile value="false"/>
|
|
||||||
<packageToFolderMapping value="false"/>
|
|
||||||
<useJvmDynamicCalls value="false"/>
|
|
||||||
<useJvmIncrementalBuild value="false"/>
|
|
||||||
<verbose value="false"/>
|
|
||||||
</cobol_settings>
|
|
||||||
<ims_settings xsi:type="additionalImsSettings">
|
|
||||||
<options>
|
|
||||||
<option id="generate_list_file" name="LIST" value="Listing/*.lst"/>
|
|
||||||
</options>
|
|
||||||
<verbose value="false"/>
|
|
||||||
<generatedFileDir name=""/>
|
|
||||||
<imsDatabaseDir name=""/>
|
|
||||||
</ims_settings>
|
|
||||||
<mfs_settings xsi:type="mfsSettings">
|
|
||||||
<options>
|
|
||||||
<option id="generate_list_file" name="LIST" value="Listing/MFS/*.lst"/>
|
|
||||||
</options>
|
|
||||||
<verbose value="false"/>
|
|
||||||
</mfs_settings>
|
|
||||||
<dbd_settings xsi:type="dbdSettings">
|
|
||||||
<options>
|
|
||||||
<option id="generate_list_file" name="LIST" value="Listing/DBD/*.lst"/>
|
|
||||||
</options>
|
|
||||||
<verbose value="false"/>
|
|
||||||
<cleanDbdOutputFiles value="false"/>
|
|
||||||
</dbd_settings>
|
|
||||||
<psb_settings xsi:type="psbSettings">
|
|
||||||
<options>
|
|
||||||
<option id="generate_list_file" name="LIST" value="Listing/PSB/*.lst"/>
|
|
||||||
</options>
|
|
||||||
<verbose value="false"/>
|
|
||||||
<cleanPsbOutputFiles value="false"/>
|
|
||||||
</psb_settings>
|
|
||||||
<bms_settings xsi:type="bmsSettings">
|
|
||||||
<options>
|
|
||||||
<option id="dsect" name="bmsSettings" value="/SYSPARM=DSECT"/>
|
|
||||||
<option id="decimalchar" name="bmsSettings" value="/DP=."/>
|
|
||||||
<option id="currencychar" name="bmsSettings" value="/CS=$"/>
|
|
||||||
<option id="sdf" name="bmsSettings" value="/IGNORE"/>
|
|
||||||
<option id="map" name="bmsSettings" value="/SYSPARM=MAP"/>
|
|
||||||
</options>
|
|
||||||
</bms_settings>
|
|
||||||
<dependent-projects xsi:type="dependentProjectsSettings"/>
|
|
||||||
<asm_settings xsi:type="assemblerCompileSettings">
|
|
||||||
<options>
|
|
||||||
<option id="compile_pre_assm_macros" name="mf370chk" value="NOMPC"/>
|
|
||||||
<option id="compile_mark_reentrant" name="mf370chk" value="RENT"/>
|
|
||||||
<option id="compile_create_optimized_code" name="mf370chk" value="NOOPT"/>
|
|
||||||
<option id="compile_aat_info" name="mf370chk" value="NOAAT"/>
|
|
||||||
<option id="compile_cross_ref_listing" name="mf370chk" value="NOXREF"/>
|
|
||||||
<option id="compile_create_debug_info" name="mf370chk" value="ANIM"/>
|
|
||||||
<option id="compile_generate_listing" name="mf370chk" value="NOLIST"/>
|
|
||||||
</options>
|
|
||||||
</asm_settings>
|
|
||||||
<asm_link_settings xsi:type="assemblerLinkSettings">
|
|
||||||
<options>
|
|
||||||
<option id="link_residency_mode" name="mf370lnk" value="RMODE(31)"/>
|
|
||||||
<option id="link_linker_output" name="mf370lnk" value="OMF(390)"/>
|
|
||||||
<option id="link_resolve_external" name="mf370lnk" value="CALL"/>
|
|
||||||
<option id="link_mark_reusable" name="mf370lnk" value="REUS"/>
|
|
||||||
<option id="link_generate_listing" name="mf370lnk" value="NOLIST"/>
|
|
||||||
<option id="link_create_debug_info" name="mf370lnk" value="ANIM"/>
|
|
||||||
<option id="link_mark_reentrant" name="mf370lnk" value="RENT"/>
|
|
||||||
<option id="link_addressing_mode" name="mf370lnk" value="AMODE(31)"/>
|
|
||||||
</options>
|
|
||||||
</asm_link_settings>
|
|
||||||
<asm_cics_settings enabled="false" xsi:type="assemblerCicsSettings">
|
|
||||||
<options>
|
|
||||||
<option id="cics_insert_epilog_macros" name="mf370chkCics" value="EPILOG"/>
|
|
||||||
<option id="cics_unsupported_option" name="mf370chkCics" value="UOPT(E)"/>
|
|
||||||
<option id="cics_insert_prolog_macros" name="mf370chkCics" value="PROLOG"/>
|
|
||||||
<option id="cics_unsupported_function" name="mf370chkCics" value="UFUNC(E)"/>
|
|
||||||
</options>
|
|
||||||
</asm_cics_settings>
|
|
||||||
<asm_autolink_settings enabled="true" xsi:type="assemblerAutoLinkSettings">
|
|
||||||
<options>
|
|
||||||
<option id="autolink_residency_mode" name="mf370chkAutoLink" value="RMODE(31)"/>
|
|
||||||
<option id="autolink_mark_reusable" name="mf370chkAutoLink" value="REUS"/>
|
|
||||||
<option id="autolink_resolve_external" name="mf370chkAutoLink" value="CALL"/>
|
|
||||||
<option id="autolink_linker_output" name="mf370chkAutoLink" value="OMF(390)"/>
|
|
||||||
<option id="autolink_addressing_mode" name="mf370chkAutoLink" value="AMODE(31)"/>
|
|
||||||
</options>
|
|
||||||
</asm_autolink_settings>
|
|
||||||
<preprocessors_settings xsi:type="preprocessorsSettings"/>
|
|
||||||
<code_analysis_settings enabled="false" genDataFiles="false" keepDataFiles="false" xsi:type="codeAnalysisSettings"/>
|
|
||||||
</settings>
|
|
||||||
<files xsi:type="projectFileStore">
|
|
||||||
<filetype type="cobol" xsi:type="cobolFileContainer">
|
|
||||||
<file compile="true" path="GildedRose.cbl" xsi:type="cobolFile"/>
|
|
||||||
</filetype>
|
|
||||||
<filetype type="cobol.copybook" xsi:type="cobolFileContainer"/>
|
|
||||||
</files>
|
|
||||||
</project>
|
|
||||||
2
COBOL/mf/src/.gitignore
vendored
2
COBOL/mf/src/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
.cobolBuild
|
|
||||||
/Gilded_Rose.bin/
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>Gilded Rose</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>com.microfocus.eclipse.project.cobolBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>com.microfocus.eclipse.project.cobolNature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
program-id. GildedRose as "GildedRose".
|
|
||||||
|
|
||||||
file-control.
|
|
||||||
select in-items assign 'in-items'.
|
|
||||||
select items assign 'items'.
|
|
||||||
|
|
||||||
data division.
|
|
||||||
file section.
|
|
||||||
fd in-items.
|
|
||||||
01 in-item pic x(58).
|
|
||||||
fd items.
|
|
||||||
01 item.
|
|
||||||
02 sell-in pic 9(4).
|
|
||||||
02 quality pic 9(4).
|
|
||||||
02 name pic x(50).
|
|
||||||
|
|
||||||
working-storage section.
|
|
||||||
procedure division.
|
|
||||||
open input in-items output items.
|
|
||||||
start-lable.
|
|
||||||
read in-items end go to end-lable.
|
|
||||||
move in-item to item.
|
|
||||||
if name not equal "Aged Brie" and name not equal "Backstage passes to a TAFKAL80ETC concert"
|
|
||||||
if quality greater then 0
|
|
||||||
if name not equal to "Sulfuras, Hand of Ragnaros"
|
|
||||||
compute quality = quality - 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
else
|
|
||||||
if quality is less then 50
|
|
||||||
compute quality = quality + 1
|
|
||||||
if name equals "Backstage passes to a TAFKAL80ETC concert"
|
|
||||||
if sell-in less then 11
|
|
||||||
if quality less then 50
|
|
||||||
compute quality = quality + 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
if sell-in less then 6
|
|
||||||
if quality less then 50
|
|
||||||
compute quality = quality + 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
if name not equal "Sulfuras, Hand of Ragnaros"
|
|
||||||
compute sell-in = sell-in - 1
|
|
||||||
end-if
|
|
||||||
if sell-in is less then 0
|
|
||||||
if name is not equal to "Aged Brie"
|
|
||||||
if name is not equal to "Backstage passes to a TAFKAL80ETC concert"
|
|
||||||
if quality is greater then 0
|
|
||||||
if name is equal to "Sulfuras, Hand of Ragnaros"
|
|
||||||
compute quality = quality - 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
else
|
|
||||||
compute quality = quality - quality
|
|
||||||
end-if
|
|
||||||
else
|
|
||||||
if quality is less then 50
|
|
||||||
compute quality = quality + 1
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
end-if
|
|
||||||
write item.
|
|
||||||
go to start-lable.
|
|
||||||
end-lable.
|
|
||||||
close items.
|
|
||||||
goback.
|
|
||||||
|
|
||||||
end program GildedRose.
|
|
||||||
@ -1,157 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xsi:schemaLocation="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="cobolProject" name="Tests" uuid="d5f7cafb-a22e-4fe6-9bb2-1f9a673a4e7d" version="4.0">
|
|
||||||
<settings xsi:type="projectSettingsContainer">
|
|
||||||
<cobol_settings xsi:type="cobolSettings">
|
|
||||||
<options>
|
|
||||||
<option name="WARNING" value="1"/>
|
|
||||||
<option name="DIALECT" value="MF"/>
|
|
||||||
<option name="CHARSET" value="ASCII"/>
|
|
||||||
<option name="MAX-ERROR" value="100"/>
|
|
||||||
<option name="SOURCEFORMAT" value="variable"/>
|
|
||||||
</options>
|
|
||||||
<createJar value="false"/>
|
|
||||||
<createJarAfterBuild value="false"/>
|
|
||||||
<debug value="true"/>
|
|
||||||
<enableCodeCoverage value="true"/>
|
|
||||||
<enableProfiler value="false"/>
|
|
||||||
<generate value="false"/>
|
|
||||||
<retainDirectivesFile value="false"/>
|
|
||||||
<genListFile value="false"/>
|
|
||||||
<packageToFolderMapping value="false"/>
|
|
||||||
<useJvmDynamicCalls value="false"/>
|
|
||||||
<useJvmIncrementalBuild value="false"/>
|
|
||||||
<verbose value="false"/>
|
|
||||||
</cobol_settings>
|
|
||||||
<copybook-paths xsi:type="copybookPathsSettings">
|
|
||||||
<path enabled="true" name="/Tests" type="mfpath"/>
|
|
||||||
<path enabled="true" name="/Gilded Rose" type="mfpath"/>
|
|
||||||
<path enabled="false" name="/Tests/Coverage" type="mfpath"/>
|
|
||||||
</copybook-paths>
|
|
||||||
<build-precedence-paths xsi:type="buildPrecedenceSettings">
|
|
||||||
<path enabled="true" name="/Tests" type="mfpath"/>
|
|
||||||
<path enabled="true" name="/Tests/Coverage" type="mfpath"/>
|
|
||||||
</build-precedence-paths>
|
|
||||||
<configurations default="Tests" linkedWith="2017" xsi:type="buildConfigurationsContainer">
|
|
||||||
<configuration description="Tests" type="single_dll" is64bit="false" createlbr="false" platform="Windows" xsi:type="cobolBuildConfiguration">
|
|
||||||
<targetdir name="Tests.bin"/>
|
|
||||||
<application_configuration xsi:type="runtimeConfigurationSettings">
|
|
||||||
<cobol_switches xsi:type="projectCobolSwitches"/>
|
|
||||||
<rts_switches xsi:type="projectRtsSwitches"/>
|
|
||||||
<envScriptParameters></envScriptParameters>
|
|
||||||
<envScriptPath></envScriptPath>
|
|
||||||
<inheritBuildEnv>false</inheritBuildEnv>
|
|
||||||
<tunables>
|
|
||||||
<tunable index="0" name="screen_lines" value="25"/>
|
|
||||||
<tunable index="0" name="screen_cols" value="80"/>
|
|
||||||
</tunables>
|
|
||||||
</application_configuration>
|
|
||||||
<link_settings xsi:type="linkSettings">
|
|
||||||
<additional_options value=""/>
|
|
||||||
<rts_bind value="false"/>
|
|
||||||
<custom_link_command value=""/>
|
|
||||||
<debug value="false"/>
|
|
||||||
<entry_point name=""/>
|
|
||||||
<entry_point_runtime value="false"/>
|
|
||||||
<error_undefined_syms value="false"/>
|
|
||||||
<application_type value="console"/>
|
|
||||||
<include_cpp value="false"/>
|
|
||||||
<additional_files/>
|
|
||||||
<rcfile path=""/>
|
|
||||||
<rts_type value="shared"/>
|
|
||||||
<target name="Tests"/>
|
|
||||||
<targettype type="dll/cso"/>
|
|
||||||
<threaded_rts value="true"/>
|
|
||||||
<verbose value="false"/>
|
|
||||||
</link_settings>
|
|
||||||
</configuration>
|
|
||||||
</configurations>
|
|
||||||
<ims_settings xsi:type="additionalImsSettings">
|
|
||||||
<options>
|
|
||||||
<option id="generate_list_file" name="LIST" value="Listing/*.lst"/>
|
|
||||||
</options>
|
|
||||||
<verbose value="false"/>
|
|
||||||
<generatedFileDir name=""/>
|
|
||||||
<imsDatabaseDir name=""/>
|
|
||||||
</ims_settings>
|
|
||||||
<mfs_settings xsi:type="mfsSettings">
|
|
||||||
<options>
|
|
||||||
<option id="generate_list_file" name="LIST" value="Listing/MFS/*.lst"/>
|
|
||||||
</options>
|
|
||||||
<verbose value="false"/>
|
|
||||||
</mfs_settings>
|
|
||||||
<dbd_settings xsi:type="dbdSettings">
|
|
||||||
<options>
|
|
||||||
<option id="generate_list_file" name="LIST" value="Listing/DBD/*.lst"/>
|
|
||||||
</options>
|
|
||||||
<verbose value="false"/>
|
|
||||||
<cleanDbdOutputFiles value="false"/>
|
|
||||||
</dbd_settings>
|
|
||||||
<psb_settings xsi:type="psbSettings">
|
|
||||||
<options>
|
|
||||||
<option id="generate_list_file" name="LIST" value="Listing/PSB/*.lst"/>
|
|
||||||
</options>
|
|
||||||
<verbose value="false"/>
|
|
||||||
<cleanPsbOutputFiles value="false"/>
|
|
||||||
</psb_settings>
|
|
||||||
<bms_settings xsi:type="bmsSettings">
|
|
||||||
<options>
|
|
||||||
<option id="dsect" name="bmsSettings" value="/SYSPARM=DSECT"/>
|
|
||||||
<option id="decimalchar" name="bmsSettings" value="/DP=."/>
|
|
||||||
<option id="currencychar" name="bmsSettings" value="/CS=$"/>
|
|
||||||
<option id="sdf" name="bmsSettings" value="/IGNORE"/>
|
|
||||||
<option id="map" name="bmsSettings" value="/SYSPARM=MAP"/>
|
|
||||||
</options>
|
|
||||||
</bms_settings>
|
|
||||||
<dependent-projects xsi:type="dependentProjectsSettings">
|
|
||||||
<dependent-project name="Gilded Rose"/>
|
|
||||||
</dependent-projects>
|
|
||||||
<asm_settings xsi:type="assemblerCompileSettings">
|
|
||||||
<options>
|
|
||||||
<option id="compile_pre_assm_macros" name="mf370chk" value="NOMPC"/>
|
|
||||||
<option id="compile_mark_reentrant" name="mf370chk" value="RENT"/>
|
|
||||||
<option id="compile_create_optimized_code" name="mf370chk" value="NOOPT"/>
|
|
||||||
<option id="compile_aat_info" name="mf370chk" value="NOAAT"/>
|
|
||||||
<option id="compile_cross_ref_listing" name="mf370chk" value="NOXREF"/>
|
|
||||||
<option id="compile_create_debug_info" name="mf370chk" value="ANIM"/>
|
|
||||||
<option id="compile_generate_listing" name="mf370chk" value="NOLIST"/>
|
|
||||||
</options>
|
|
||||||
</asm_settings>
|
|
||||||
<asm_link_settings xsi:type="assemblerLinkSettings">
|
|
||||||
<options>
|
|
||||||
<option id="link_residency_mode" name="mf370lnk" value="RMODE(31)"/>
|
|
||||||
<option id="link_linker_output" name="mf370lnk" value="OMF(390)"/>
|
|
||||||
<option id="link_resolve_external" name="mf370lnk" value="CALL"/>
|
|
||||||
<option id="link_mark_reusable" name="mf370lnk" value="REUS"/>
|
|
||||||
<option id="link_generate_listing" name="mf370lnk" value="NOLIST"/>
|
|
||||||
<option id="link_create_debug_info" name="mf370lnk" value="ANIM"/>
|
|
||||||
<option id="link_mark_reentrant" name="mf370lnk" value="RENT"/>
|
|
||||||
<option id="link_addressing_mode" name="mf370lnk" value="AMODE(31)"/>
|
|
||||||
</options>
|
|
||||||
</asm_link_settings>
|
|
||||||
<asm_cics_settings enabled="false" xsi:type="assemblerCicsSettings">
|
|
||||||
<options>
|
|
||||||
<option id="cics_insert_epilog_macros" name="mf370chkCics" value="EPILOG"/>
|
|
||||||
<option id="cics_unsupported_option" name="mf370chkCics" value="UOPT(E)"/>
|
|
||||||
<option id="cics_insert_prolog_macros" name="mf370chkCics" value="PROLOG"/>
|
|
||||||
<option id="cics_unsupported_function" name="mf370chkCics" value="UFUNC(E)"/>
|
|
||||||
</options>
|
|
||||||
</asm_cics_settings>
|
|
||||||
<asm_autolink_settings enabled="true" xsi:type="assemblerAutoLinkSettings">
|
|
||||||
<options>
|
|
||||||
<option id="autolink_residency_mode" name="mf370chkAutoLink" value="RMODE(31)"/>
|
|
||||||
<option id="autolink_mark_reusable" name="mf370chkAutoLink" value="REUS"/>
|
|
||||||
<option id="autolink_resolve_external" name="mf370chkAutoLink" value="CALL"/>
|
|
||||||
<option id="autolink_linker_output" name="mf370chkAutoLink" value="OMF(390)"/>
|
|
||||||
<option id="autolink_addressing_mode" name="mf370chkAutoLink" value="AMODE(31)"/>
|
|
||||||
</options>
|
|
||||||
</asm_autolink_settings>
|
|
||||||
<preprocessors_settings xsi:type="preprocessorsSettings"/>
|
|
||||||
<code_analysis_settings enabled="false" genDataFiles="false" keepDataFiles="false" xsi:type="codeAnalysisSettings"/>
|
|
||||||
</settings>
|
|
||||||
<files xsi:type="projectFileStore">
|
|
||||||
<filetype type="cobol" xsi:type="cobolFileContainer">
|
|
||||||
<file compile="true" path="TestGildedRose.cbl" xsi:type="cobolFile"/>
|
|
||||||
</filetype>
|
|
||||||
<filetype type="cobol.copybook" xsi:type="cobolFileContainer"/>
|
|
||||||
</files>
|
|
||||||
</project>
|
|
||||||
3
COBOL/mf/test/.gitignore
vendored
3
COBOL/mf/test/.gitignore
vendored
@ -1,3 +0,0 @@
|
|||||||
/.cobolBuild
|
|
||||||
/Coverage/
|
|
||||||
/Tests.bin/
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>Tests</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>com.microfocus.eclipse.project.cobolBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>com.microfocus.eclipse.mfunit.core.mfUnitBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>com.microfocus.eclipse.project.cobolNature</nature>
|
|
||||||
<nature>com.microfocus.eclipse.mfunit.core.mfUnitNature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
||||||
@ -1,67 +0,0 @@
|
|||||||
*> Test Fixture for GildedRose, GildedRose
|
|
||||||
|
|
||||||
copy "mfunit_prototypes.cpy".
|
|
||||||
|
|
||||||
program-id. TestGildedRose.
|
|
||||||
|
|
||||||
file-control.
|
|
||||||
select in-items assign 'in-items'.
|
|
||||||
select items assign 'items'.
|
|
||||||
|
|
||||||
file section.
|
|
||||||
fd in-items.
|
|
||||||
01 in-item.
|
|
||||||
02 sell-in pic 9(4).
|
|
||||||
02 quality pic 9(4).
|
|
||||||
02 name pic x(50).
|
|
||||||
fd items.
|
|
||||||
01 item.
|
|
||||||
02 sell-in pic 9(4).
|
|
||||||
02 quality pic 9(4).
|
|
||||||
02 name pic x(50).
|
|
||||||
|
|
||||||
working-storage section.
|
|
||||||
copy "mfunit.cpy".
|
|
||||||
78 TEST-TESTGILDEDROSE value "TestGildedRose".
|
|
||||||
01 pp procedure-pointer.
|
|
||||||
|
|
||||||
*> Program linkage data
|
|
||||||
|
|
||||||
procedure division.
|
|
||||||
goback returning 0
|
|
||||||
.
|
|
||||||
|
|
||||||
entry MFU-TC-PREFIX & TEST-TESTGILDEDROSE.
|
|
||||||
open output in-items
|
|
||||||
move "foo" to name in in-item
|
|
||||||
move 0 to quality in in-item
|
|
||||||
move 0 to sell-in in in-item
|
|
||||||
write in-item
|
|
||||||
close in-items
|
|
||||||
call "GildedRose"
|
|
||||||
open input items
|
|
||||||
read items
|
|
||||||
if name in item not equal to "fixme" then
|
|
||||||
call MFU-ASSERT-FAIL-Z using z"item name was not fixme"
|
|
||||||
close items
|
|
||||||
goback
|
|
||||||
.
|
|
||||||
|
|
||||||
$region TestCase Configuration
|
|
||||||
|
|
||||||
entry MFU-TC-SETUP-PREFIX & TEST-TESTGILDEDROSE.
|
|
||||||
perform InitializeLinkageData
|
|
||||||
*> Add any other test setup code here
|
|
||||||
goback returning 0
|
|
||||||
.
|
|
||||||
|
|
||||||
InitializeLinkageData section.
|
|
||||||
*> Load the library that is being tested
|
|
||||||
set pp to entry "GildedRose"
|
|
||||||
|
|
||||||
exit section
|
|
||||||
.
|
|
||||||
|
|
||||||
$end-region
|
|
||||||
|
|
||||||
end program.
|
|
||||||
17
Delphi/.gitattributes
vendored
17
Delphi/.gitattributes
vendored
@ -1,17 +0,0 @@
|
|||||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
|
||||||
* text=auto
|
|
||||||
|
|
||||||
# Explicitly declare text files you want to always be normalized and converted
|
|
||||||
# to native line endings on checkout.
|
|
||||||
*.groupproj text
|
|
||||||
*.dpr text
|
|
||||||
*.dproj text
|
|
||||||
*.pas text
|
|
||||||
*.dfm text
|
|
||||||
*.fmx text
|
|
||||||
|
|
||||||
# Declare files that will always have CRLF line endings on checkout.
|
|
||||||
|
|
||||||
# Denote all files that are truly binary and should not be modified.
|
|
||||||
*.exe binary
|
|
||||||
*.res binary
|
|
||||||
71
Delphi/.gitignore
vendored
71
Delphi/.gitignore
vendored
@ -1,71 +0,0 @@
|
|||||||
# Uncomment these types if you want even more clean repository. But be careful.
|
|
||||||
# It can make harm to an existing project source. Read explanations below.
|
|
||||||
#
|
|
||||||
# Resource files are binaries containing manifest, project icon and version info.
|
|
||||||
# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files.
|
|
||||||
*.res
|
|
||||||
#
|
|
||||||
# Type library file (binary). In old Delphi versions it should be stored.
|
|
||||||
# Since Delphi 2009 it is produced from .ridl file and can safely be ignored.
|
|
||||||
#*.tlb
|
|
||||||
#
|
|
||||||
# Diagram Portfolio file. Used by the diagram editor up to Delphi 7.
|
|
||||||
# Uncomment this if you are not using diagrams or use newer Delphi version.
|
|
||||||
#*.ddp
|
|
||||||
#
|
|
||||||
# Visual LiveBindings file. Added in Delphi XE2.
|
|
||||||
# Uncomment this if you are not using LiveBindings Designer.
|
|
||||||
#*.vlb
|
|
||||||
#
|
|
||||||
# Deployment Manager configuration file for your project. Added in Delphi XE2.
|
|
||||||
# Uncomment this if it is not mobile development and you do not use remote debug feature.
|
|
||||||
#*.deployproj
|
|
||||||
#
|
|
||||||
# C++ object files produced when C/C++ Output file generation is configured.
|
|
||||||
# Uncomment this if you are not using external objects (zlib library for example).
|
|
||||||
#*.obj
|
|
||||||
#
|
|
||||||
|
|
||||||
# Delphi compiler-generated binaries (safe to delete)
|
|
||||||
*.exe
|
|
||||||
*.dll
|
|
||||||
*.bpl
|
|
||||||
*.bpi
|
|
||||||
*.dcp
|
|
||||||
*.so
|
|
||||||
*.apk
|
|
||||||
*.drc
|
|
||||||
*.map
|
|
||||||
*.dres
|
|
||||||
*.rsm
|
|
||||||
*.tds
|
|
||||||
*.dcu
|
|
||||||
*.lib
|
|
||||||
*.a
|
|
||||||
*.o
|
|
||||||
*.ocx
|
|
||||||
|
|
||||||
# Delphi autogenerated files (duplicated info)
|
|
||||||
*.cfg
|
|
||||||
*.hpp
|
|
||||||
*Resource.rc
|
|
||||||
|
|
||||||
# Delphi local files (user-specific info)
|
|
||||||
*.local
|
|
||||||
*.identcache
|
|
||||||
*.projdata
|
|
||||||
*.tvsconfig
|
|
||||||
*.dsk
|
|
||||||
|
|
||||||
# Delphi history and backups
|
|
||||||
__history/
|
|
||||||
__recovery/
|
|
||||||
*.~*
|
|
||||||
|
|
||||||
# Castalia statistics file (since XE7 Castalia is distributed with Delphi)
|
|
||||||
*.stat
|
|
||||||
|
|
||||||
# Ignore Build outputs
|
|
||||||
Build
|
|
||||||
Win32
|
|
||||||
Win64
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<ProjectGuid>{3E0B3749-4258-486E-A44B-05088E7E42D6}</ProjectGuid>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Projects Include="TextTestFixture.dproj">
|
|
||||||
<Dependencies/>
|
|
||||||
</Projects>
|
|
||||||
<Projects Include="UnitTests.dproj">
|
|
||||||
<Dependencies/>
|
|
||||||
</Projects>
|
|
||||||
</ItemGroup>
|
|
||||||
<ProjectExtensions>
|
|
||||||
<Borland.Personality>Default.Personality.12</Borland.Personality>
|
|
||||||
<Borland.ProjectType/>
|
|
||||||
<BorlandProject>
|
|
||||||
<Default.Personality/>
|
|
||||||
</BorlandProject>
|
|
||||||
</ProjectExtensions>
|
|
||||||
<Target Name="TextTestFixture">
|
|
||||||
<MSBuild Projects="TextTestFixture.dproj"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="TextTestFixture:Clean">
|
|
||||||
<MSBuild Projects="TextTestFixture.dproj" Targets="Clean"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="TextTestFixture:Make">
|
|
||||||
<MSBuild Projects="TextTestFixture.dproj" Targets="Make"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="UnitTests">
|
|
||||||
<MSBuild Projects="UnitTests.dproj"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="UnitTests:Clean">
|
|
||||||
<MSBuild Projects="UnitTests.dproj" Targets="Clean"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="UnitTests:Make">
|
|
||||||
<MSBuild Projects="UnitTests.dproj" Targets="Make"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="Build">
|
|
||||||
<CallTarget Targets="TextTestFixture;UnitTests"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="Clean">
|
|
||||||
<CallTarget Targets="TextTestFixture:Clean;UnitTests:Clean"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="Make">
|
|
||||||
<CallTarget Targets="TextTestFixture:Make;UnitTests:Make"/>
|
|
||||||
</Target>
|
|
||||||
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
|
|
||||||
</Project>
|
|
||||||
@ -1,106 +0,0 @@
|
|||||||
unit GildedRose;
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses
|
|
||||||
Item,
|
|
||||||
System.Generics.Collections;
|
|
||||||
|
|
||||||
type
|
|
||||||
TGildedRose = class(TObject)
|
|
||||||
private
|
|
||||||
FItems: TObjectList<TItem>;
|
|
||||||
public
|
|
||||||
constructor Create(const AItems: TObjectList<TItem>);
|
|
||||||
procedure UpdateQuality;
|
|
||||||
property Items: TObjectList<TItem> read FItems;
|
|
||||||
end;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
{ TGildedRose }
|
|
||||||
|
|
||||||
constructor TGildedRose.Create(const AItems: TObjectList<TItem>);
|
|
||||||
begin
|
|
||||||
inherited Create;
|
|
||||||
FItems := AItems;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TGildedRose.UpdateQuality;
|
|
||||||
var
|
|
||||||
I: Integer;
|
|
||||||
begin
|
|
||||||
for I := 0 to Items.Count - 1 do
|
|
||||||
begin
|
|
||||||
if (Items[I].Name <> 'Aged Brie') and (Items[I].Name <> 'Backstage passes to a TAFKAL80ETC concert') then
|
|
||||||
begin
|
|
||||||
if Items[I].Quality > 0 then
|
|
||||||
begin
|
|
||||||
if Items[I].Name <> 'Sulfuras, Hand of Ragnaros' then
|
|
||||||
begin
|
|
||||||
Items[I].Quality := Items[I].Quality - 1;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
if Items[I].Quality < 50 then
|
|
||||||
begin
|
|
||||||
Items[I].Quality := Items[I].Quality + 1;
|
|
||||||
if Items[I].Name = 'Backstage passes to a TAFKAL80ETC concert' then
|
|
||||||
begin
|
|
||||||
if Items[I].SellIn < 11 then
|
|
||||||
begin
|
|
||||||
if Items[I].Quality < 50 then
|
|
||||||
begin
|
|
||||||
Items[I].Quality := Items[I].Quality + 1;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if Items[I].SellIn < 6 then
|
|
||||||
begin
|
|
||||||
if Items[I].Quality < 50 then
|
|
||||||
begin
|
|
||||||
Items[I].Quality := Items[I].Quality + 1;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if Items[I].Name <> 'Sulfuras, Hand of Ragnaros' then
|
|
||||||
begin
|
|
||||||
Items[I].SellIn := Items[I].SellIn - 1;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if Items[I].SellIn < 0 then
|
|
||||||
begin
|
|
||||||
if Items[I].Name <> 'Aged Brie' then
|
|
||||||
begin
|
|
||||||
if Items[I].Name <> 'Backstage passes to a TAFKAL80ETC concert' then
|
|
||||||
begin
|
|
||||||
if Items[I].Quality > 0 then
|
|
||||||
begin
|
|
||||||
if Items[I].Name <> 'Sulfuras, Hand of Ragnaros' then
|
|
||||||
begin
|
|
||||||
Items[I].Quality := Items[I].Quality - 1;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Items[I].Quality := Items[I].Quality - Items[I].Quality;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
if Items[I].Quality < 50 then
|
|
||||||
begin
|
|
||||||
Items[I].Quality := Items[I].Quality + 1;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
end.
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
unit GildedRoseTests;
|
|
||||||
|
|
||||||
interface
|
|
||||||
uses
|
|
||||||
DUnitX.TestFramework,
|
|
||||||
GildedRose,
|
|
||||||
Item,
|
|
||||||
System.Generics.Collections;
|
|
||||||
|
|
||||||
type
|
|
||||||
[TestFixture]
|
|
||||||
TGildedRoseTests = class(TObject)
|
|
||||||
public
|
|
||||||
[Test]
|
|
||||||
procedure UpdateQuality_Never_ChangesTheItemName;
|
|
||||||
end;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
procedure TGildedRoseTests.UpdateQuality_Never_ChangesTheItemName;
|
|
||||||
var
|
|
||||||
LItems: TObjectList<TItem>;
|
|
||||||
LGildedRose: TGildedRose;
|
|
||||||
begin
|
|
||||||
LItems := TObjectList<TItem>.Create;
|
|
||||||
LItems.Add(TItem.Create('foo', 0, 0));
|
|
||||||
LGildedRose := TGildedRose.Create(LItems);
|
|
||||||
|
|
||||||
LGildedRose.UpdateQuality;
|
|
||||||
|
|
||||||
Assert.AreEqual('fixme', LGildedRose.Items[0].Name);
|
|
||||||
end;
|
|
||||||
|
|
||||||
initialization
|
|
||||||
TDUnitX.RegisterTestFixture(TGildedRoseTests);
|
|
||||||
end.
|
|
||||||
@ -1,39 +0,0 @@
|
|||||||
unit Item;
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
type
|
|
||||||
TItem = class(TObject)
|
|
||||||
private
|
|
||||||
FName: string;
|
|
||||||
FSellIn: Integer;
|
|
||||||
FQuality: Integer;
|
|
||||||
public
|
|
||||||
constructor Create(const AName: string; const ASellIn, AQuality: Integer);
|
|
||||||
function ToString: string; override;
|
|
||||||
property Name: string read FName write FName;
|
|
||||||
property SellIn: Integer read FSellIn write FSellIn;
|
|
||||||
property Quality: Integer read FQuality write FQuality;
|
|
||||||
end;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
uses
|
|
||||||
System.SysUtils;
|
|
||||||
|
|
||||||
{ TItem }
|
|
||||||
|
|
||||||
constructor TItem.Create(const AName: string; const ASellIn, AQuality: Integer);
|
|
||||||
begin
|
|
||||||
inherited Create;
|
|
||||||
FName := AName;
|
|
||||||
FSellIn := ASellIn;
|
|
||||||
FQuality := AQuality;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TItem.ToString: string;
|
|
||||||
begin
|
|
||||||
Result := Format('%s, %d, %d', [Name, SellIn, Quality]);
|
|
||||||
end;
|
|
||||||
|
|
||||||
end.
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
# Delphi port of the Gilded-Rose Kata
|
|
||||||
This is a Delphi port of the *Gilded-Rose-Kata*.
|
|
||||||
|
|
||||||
## Version Compatibility
|
|
||||||
The project files are written in Delphi 10.3.3 therefore require 10.3 or later.
|
|
||||||
That said, the actual code should be compatible back to Delphi 2010 as the unit
|
|
||||||
tests are written in [DUnitX](https://github.com/VSoftTechnologies/DUnitX) which
|
|
||||||
requires Delphi 2010 or later.
|
|
||||||
|
|
||||||
## Building and Running
|
|
||||||
* Open the project group `GildedRose.groupproj`.
|
|
||||||
* Build and run the `TextTestFixture.exe` for the text output tests.
|
|
||||||
* Build and run the `UnitTests.exe` project to execute the unit tests.
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
program TextTestFixture;
|
|
||||||
|
|
||||||
{$APPTYPE CONSOLE}
|
|
||||||
|
|
||||||
{$R *.res}
|
|
||||||
|
|
||||||
uses
|
|
||||||
System.SysUtils,
|
|
||||||
System.Generics.Collections,
|
|
||||||
GildedRose in 'GildedRose.pas',
|
|
||||||
Item in 'Item.pas';
|
|
||||||
|
|
||||||
var
|
|
||||||
Days, ErrorCode, I, J: Integer;
|
|
||||||
Items: TObjectList<TItem>;
|
|
||||||
App: TGildedRose;
|
|
||||||
|
|
||||||
begin
|
|
||||||
try
|
|
||||||
Writeln('OMGHAI!');
|
|
||||||
|
|
||||||
Items := TObjectList<TItem>.Create;
|
|
||||||
Items.Add(TItem.Create('+5 Dexterity Vest', 10, 20));
|
|
||||||
Items.Add(TItem.Create('Aged Brie', 2, 0));
|
|
||||||
Items.Add(TItem.Create('Elixir of the Mongoose', 5, 7));
|
|
||||||
Items.Add(TItem.Create('Sulfuras, Hand of Ragnaros', 0, 80));
|
|
||||||
Items.Add(TItem.Create('Sulfuras, Hand of Ragnaros', -1, 80));
|
|
||||||
Items.Add(TItem.Create('Backstage passes to a TAFKAL80ETC concert', 15, 20));
|
|
||||||
Items.Add(TItem.Create('Backstage passes to a TAFKAL80ETC concert', 10, 49));
|
|
||||||
Items.Add(TItem.Create('Backstage passes to a TAFKAL80ETC concert', 5, 49));
|
|
||||||
// this conjured item does not work properly yet
|
|
||||||
Items.Add(TItem.Create('Conjured Mana Cake', 3, 6));
|
|
||||||
|
|
||||||
App := TGildedRose.Create(Items);
|
|
||||||
|
|
||||||
Days := 2;
|
|
||||||
if ParamCount > 0 then
|
|
||||||
begin
|
|
||||||
Val(ParamStr(1), Days, ErrorCode);
|
|
||||||
Inc(Days);
|
|
||||||
end;
|
|
||||||
|
|
||||||
for I := 0 to Days - 1 do
|
|
||||||
begin
|
|
||||||
Writeln(Format('-------- day %d --------', [I]));
|
|
||||||
Writeln('name, sellIn, quality');
|
|
||||||
for J := 0 to Items.Count - 1 do
|
|
||||||
Writeln(Items[J].ToString);
|
|
||||||
Writeln;
|
|
||||||
|
|
||||||
App.UpdateQuality;
|
|
||||||
end;
|
|
||||||
except
|
|
||||||
on E: Exception do
|
|
||||||
Writeln(E.ClassName, ': ', E.Message);
|
|
||||||
end;
|
|
||||||
end.
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1,59 +0,0 @@
|
|||||||
program UnitTests;
|
|
||||||
|
|
||||||
{$IFNDEF TESTINSIGHT}
|
|
||||||
{$APPTYPE CONSOLE}
|
|
||||||
{$ENDIF}{$STRONGLINKTYPES ON}
|
|
||||||
uses
|
|
||||||
System.SysUtils,
|
|
||||||
{$IFDEF TESTINSIGHT}
|
|
||||||
TestInsight.DUnitX,
|
|
||||||
{$ENDIF }
|
|
||||||
DUnitX.Loggers.Console,
|
|
||||||
DUnitX.Loggers.Xml.NUnit,
|
|
||||||
DUnitX.TestFramework,
|
|
||||||
GildedRoseTests in 'GildedRoseTests.pas';
|
|
||||||
|
|
||||||
var
|
|
||||||
runner : ITestRunner;
|
|
||||||
results : IRunResults;
|
|
||||||
logger : ITestLogger;
|
|
||||||
nunitLogger : ITestLogger;
|
|
||||||
begin
|
|
||||||
{$IFDEF TESTINSIGHT}
|
|
||||||
TestInsight.DUnitX.RunRegisteredTests;
|
|
||||||
exit;
|
|
||||||
{$ENDIF}
|
|
||||||
try
|
|
||||||
//Check command line options, will exit if invalid
|
|
||||||
TDUnitX.CheckCommandLine;
|
|
||||||
//Create the test runner
|
|
||||||
runner := TDUnitX.CreateRunner;
|
|
||||||
//Tell the runner to use RTTI to find Fixtures
|
|
||||||
runner.UseRTTI := True;
|
|
||||||
//tell the runner how we will log things
|
|
||||||
//Log to the console window
|
|
||||||
logger := TDUnitXConsoleLogger.Create(true);
|
|
||||||
runner.AddLogger(logger);
|
|
||||||
//Generate an NUnit compatible XML File
|
|
||||||
nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
|
|
||||||
runner.AddLogger(nunitLogger);
|
|
||||||
runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
|
|
||||||
|
|
||||||
//Run tests
|
|
||||||
results := runner.Execute;
|
|
||||||
if not results.AllPassed then
|
|
||||||
System.ExitCode := EXIT_ERRORS;
|
|
||||||
|
|
||||||
{$IFNDEF CI}
|
|
||||||
//We don't want this happening when running under CI.
|
|
||||||
if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
|
|
||||||
begin
|
|
||||||
System.Write('Done.. press <Enter> key to quit.');
|
|
||||||
System.Readln;
|
|
||||||
end;
|
|
||||||
{$ENDIF}
|
|
||||||
except
|
|
||||||
on E: Exception do
|
|
||||||
System.Writeln(E.ClassName, ': ', E.Message);
|
|
||||||
end;
|
|
||||||
end.
|
|
||||||
@ -1,937 +0,0 @@
|
|||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<ProjectGuid>{9379A28B-85A1-455B-BE8B-BDE5DD446BDF}</ProjectGuid>
|
|
||||||
<ProjectVersion>18.8</ProjectVersion>
|
|
||||||
<FrameworkType>None</FrameworkType>
|
|
||||||
<MainSource>UnitTests.dpr</MainSource>
|
|
||||||
<Base>True</Base>
|
|
||||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
|
||||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
|
||||||
<TargetedPlatforms>1</TargetedPlatforms>
|
|
||||||
<AppType>Console</AppType>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="('$(Platform)'=='iOSDevice32' and '$(Base)'=='true') or '$(Base_iOSDevice32)'!=''">
|
|
||||||
<Base_iOSDevice32>true</Base_iOSDevice32>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
|
|
||||||
<Base_iOSDevice64>true</Base_iOSDevice64>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="('$(Platform)'=='iOSSimulator' and '$(Base)'=='true') or '$(Base_iOSSimulator)'!=''">
|
|
||||||
<Base_iOSSimulator>true</Base_iOSSimulator>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Base)'=='true') or '$(Base_OSX32)'!=''">
|
|
||||||
<Base_OSX32>true</Base_OSX32>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="('$(Platform)'=='OSX64' and '$(Base)'=='true') or '$(Base_OSX64)'!=''">
|
|
||||||
<Base_OSX64>true</Base_OSX64>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
|
||||||
<Base_Win32>true</Base_Win32>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
|
||||||
<Base_Win64>true</Base_Win64>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
|
||||||
<Cfg_1>true</Cfg_1>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
|
||||||
<Cfg_1_Win32>true</Cfg_1_Win32>
|
|
||||||
<CfgParent>Cfg_1</CfgParent>
|
|
||||||
<Cfg_1>true</Cfg_1>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
|
||||||
<Cfg_2>true</Cfg_2>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
<Base>true</Base>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Base)'!=''">
|
|
||||||
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
|
||||||
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
|
|
||||||
<DCC_E>false</DCC_E>
|
|
||||||
<DCC_N>false</DCC_N>
|
|
||||||
<DCC_S>false</DCC_S>
|
|
||||||
<DCC_F>false</DCC_F>
|
|
||||||
<DCC_K>false</DCC_K>
|
|
||||||
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
|
||||||
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
|
|
||||||
<Icns_MainIcns>$(BDS)\bin\delphi_PROJECTICNS.icns</Icns_MainIcns>
|
|
||||||
<DCC_UnitSearchPath>$(DUnitX);$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
|
|
||||||
<SanitizedProjectName>UnitTests</SanitizedProjectName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Base_iOSDevice32)'!=''">
|
|
||||||
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
|
|
||||||
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Base_iOSSimulator)'!=''">
|
|
||||||
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;bindcompfmx;FmxTeeUI;fmx;FireDACIBDriver;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;CloudService;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Base_OSX32)'!=''">
|
|
||||||
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)</DCC_UsePackage>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Base_OSX64)'!=''">
|
|
||||||
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;fmxase;DBXInterBaseDriver;emsclientfiredac;tethering;DataSnapFireDAC;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;soapserver;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDAC;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)</DCC_UsePackage>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
|
||||||
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)</DCC_UsePackage>
|
|
||||||
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
|
||||||
<BT_BuildType>Debug</BT_BuildType>
|
|
||||||
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
|
||||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
|
||||||
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)</DCC_UsePackage>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
|
||||||
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
|
||||||
<DCC_DebugDCUs>true</DCC_DebugDCUs>
|
|
||||||
<DCC_Optimize>false</DCC_Optimize>
|
|
||||||
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
|
||||||
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
|
||||||
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
|
||||||
<DCC_RemoteDebug>false</DCC_RemoteDebug>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
|
||||||
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
|
||||||
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
|
||||||
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
|
||||||
<DCC_DebugInformation>0</DCC_DebugInformation>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<DelphiCompile Include="$(MainSource)">
|
|
||||||
<MainSource>MainSource</MainSource>
|
|
||||||
</DelphiCompile>
|
|
||||||
<DCCReference Include="GildedRoseTests.pas"/>
|
|
||||||
<BuildConfiguration Include="Release">
|
|
||||||
<Key>Cfg_2</Key>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
</BuildConfiguration>
|
|
||||||
<BuildConfiguration Include="Base">
|
|
||||||
<Key>Base</Key>
|
|
||||||
</BuildConfiguration>
|
|
||||||
<BuildConfiguration Include="Debug">
|
|
||||||
<Key>Cfg_1</Key>
|
|
||||||
<CfgParent>Base</CfgParent>
|
|
||||||
</BuildConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<ProjectExtensions>
|
|
||||||
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
|
||||||
<Borland.ProjectType>Console</Borland.ProjectType>
|
|
||||||
<BorlandProject>
|
|
||||||
<Delphi.Personality>
|
|
||||||
<Source>
|
|
||||||
<Source Name="MainSource">UnitTests.dpr</Source>
|
|
||||||
</Source>
|
|
||||||
</Delphi.Personality>
|
|
||||||
<Deployment Version="3">
|
|
||||||
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<Overwrite>true</Overwrite>
|
|
||||||
</Platform>
|
|
||||||
</DeployFile>
|
|
||||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib" Class="DependencyModule">
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Overwrite>true</Overwrite>
|
|
||||||
</Platform>
|
|
||||||
</DeployFile>
|
|
||||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Overwrite>true</Overwrite>
|
|
||||||
</Platform>
|
|
||||||
</DeployFile>
|
|
||||||
<DeployFile LocalName="Win32\Debug\UnitTests.exe" Configuration="Debug" Class="ProjectOutput">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteName>UnitTests.exe</RemoteName>
|
|
||||||
<Overwrite>true</Overwrite>
|
|
||||||
</Platform>
|
|
||||||
</DeployFile>
|
|
||||||
<DeployClass Name="AdditionalDebugSymbols">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidClassesDexFile">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>classes</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>classes</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidFileProvider">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\xml</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\xml</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidGDBServer">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidLibnativeArmeabiFile">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>library\lib\armeabi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\armeabi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidLibnativeArmeabiv7aFile">
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidLibnativeMipsFile">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>library\lib\mips</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\mips</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidServiceOutput">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidServiceOutput_Android32">
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidSplashImageDef">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidSplashStyles">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\values</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\values</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="AndroidSplashStylesV21">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\values-v21</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\values-v21</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_Colors">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\values</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\values</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_DefaultAppIcon">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_LauncherIcon144">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_LauncherIcon36">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_LauncherIcon48">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_LauncherIcon72">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_LauncherIcon96">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_NotificationIcon24">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_NotificationIcon36">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_NotificationIcon48">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_NotificationIcon72">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_NotificationIcon96">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_SplashImage426">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-small</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-small</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_SplashImage470">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-normal</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-normal</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_SplashImage640">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-large</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-large</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_SplashImage960">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="Android_Strings">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>res\values</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>res\values</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="DebugSymbols">
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="DependencyFramework">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.framework</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.framework</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="DependencyModule">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.dylib</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.dylib</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
<Extensions>.dll;.bpl</Extensions>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Required="true" Name="DependencyPackage">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.dylib</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.dylib</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.dylib</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.dylib</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
<Extensions>.dylib</Extensions>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
<Extensions>.bpl</Extensions>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="File">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch1024x768">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch1536x2048">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch1668">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch1668x2388">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch2048x1536">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch2048x2732">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch2224">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch2388x1668">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch2732x2048">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPad_Launch768x1024">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch1125">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch1136x640">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch1242">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch1242x2688">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch1334">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch1792">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch2208">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch2436">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch2688x1242">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch320">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch640">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch640x1136">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch750">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="iPhone_Launch828">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectAndroidManifest">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
|
|
||||||
<DeployClass Name="ProjectiOSEntitlements"/>
|
|
||||||
<DeployClass Name="ProjectiOSInfoPList"/>
|
|
||||||
<DeployClass Name="ProjectiOSResource">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXDebug"/>
|
|
||||||
<DeployClass Name="ProjectOSXEntitlements"/>
|
|
||||||
<DeployClass Name="ProjectOSXInfoPList"/>
|
|
||||||
<DeployClass Name="ProjectOSXResource">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Required="true" Name="ProjectOutput">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimulator">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Linux64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOutput_Android32">
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectUWPManifest">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="UWP_DelphiLogo150">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="UWP_DelphiLogo44">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
|
||||||
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
|
||||||
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
|
||||||
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
|
||||||
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
|
|
||||||
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/>
|
|
||||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
|
||||||
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME)"/>
|
|
||||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
|
||||||
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
|
||||||
</Deployment>
|
|
||||||
<Platforms>
|
|
||||||
<Platform value="iOSDevice32">False</Platform>
|
|
||||||
<Platform value="iOSDevice64">False</Platform>
|
|
||||||
<Platform value="iOSSimulator">False</Platform>
|
|
||||||
<Platform value="OSX32">False</Platform>
|
|
||||||
<Platform value="OSX64">False</Platform>
|
|
||||||
<Platform value="Win32">True</Platform>
|
|
||||||
<Platform value="Win64">False</Platform>
|
|
||||||
</Platforms>
|
|
||||||
</BorlandProject>
|
|
||||||
<ProjectFileVersion>12</ProjectFileVersion>
|
|
||||||
</ProjectExtensions>
|
|
||||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
|
||||||
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
|
||||||
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
|
|
||||||
</Project>
|
|
||||||
96
Groovy/.gitignore
vendored
96
Groovy/.gitignore
vendored
@ -1,96 +0,0 @@
|
|||||||
|
|
||||||
# Created by https://www.gitignore.io/api/groovy,intellij,eclipse,vim
|
|
||||||
|
|
||||||
#!! ERROR: groovy is undefined. Use list command to see defined gitignore types !!#
|
|
||||||
|
|
||||||
### Intellij ###
|
|
||||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
|
||||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
|
||||||
|
|
||||||
# User-specific stuff:
|
|
||||||
.idea/
|
|
||||||
|
|
||||||
## File-based project format:
|
|
||||||
*.iws
|
|
||||||
*.iml
|
|
||||||
|
|
||||||
## Plugin-specific files:
|
|
||||||
|
|
||||||
# IntelliJ
|
|
||||||
out/
|
|
||||||
|
|
||||||
# mpeltonen/sbt-idea plugin
|
|
||||||
.idea_modules/
|
|
||||||
|
|
||||||
# JIRA plugin
|
|
||||||
atlassian-ide-plugin.xml
|
|
||||||
|
|
||||||
# Gradle
|
|
||||||
.gradle
|
|
||||||
build/
|
|
||||||
|
|
||||||
### Eclipse ###
|
|
||||||
|
|
||||||
.metadata
|
|
||||||
bin/
|
|
||||||
tmp/
|
|
||||||
*.tmp
|
|
||||||
*.bak
|
|
||||||
*.swp
|
|
||||||
*~.nib
|
|
||||||
local.properties
|
|
||||||
.settings/
|
|
||||||
.loadpath
|
|
||||||
.recommenders
|
|
||||||
|
|
||||||
# Eclipse Core
|
|
||||||
.project
|
|
||||||
|
|
||||||
# External tool builders
|
|
||||||
.externalToolBuilders/
|
|
||||||
|
|
||||||
# Locally stored "Eclipse launch configurations"
|
|
||||||
*.launch
|
|
||||||
|
|
||||||
# PyDev specific (Python IDE for Eclipse)
|
|
||||||
*.pydevproject
|
|
||||||
|
|
||||||
# CDT-specific (C/C++ Development Tooling)
|
|
||||||
.cproject
|
|
||||||
|
|
||||||
# JDT-specific (Eclipse Java Development Tools)
|
|
||||||
.classpath
|
|
||||||
|
|
||||||
# Java annotation processor (APT)
|
|
||||||
.factorypath
|
|
||||||
|
|
||||||
# PDT-specific (PHP Development Tools)
|
|
||||||
.buildpath
|
|
||||||
|
|
||||||
# sbteclipse plugin
|
|
||||||
.target
|
|
||||||
|
|
||||||
# Tern plugin
|
|
||||||
.tern-project
|
|
||||||
|
|
||||||
# TeXlipse plugin
|
|
||||||
.texlipse
|
|
||||||
|
|
||||||
# STS (Spring Tool Suite)
|
|
||||||
.springBeans
|
|
||||||
|
|
||||||
# Code Recommenders
|
|
||||||
.recommenders/
|
|
||||||
|
|
||||||
|
|
||||||
### Vim ###
|
|
||||||
# swap
|
|
||||||
[._]*.s[a-w][a-z]
|
|
||||||
[._]s[a-w][a-z]
|
|
||||||
# session
|
|
||||||
Session.vim
|
|
||||||
# temporary
|
|
||||||
.netrwhist
|
|
||||||
*~
|
|
||||||
# auto-generated tag files
|
|
||||||
tags
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="CompilerConfiguration">
|
|
||||||
<resourceExtensions />
|
|
||||||
<wildcardResourcePatterns>
|
|
||||||
<entry name="!?*.java" />
|
|
||||||
<entry name="!?*.form" />
|
|
||||||
<entry name="!?*.class" />
|
|
||||||
<entry name="!?*.groovy" />
|
|
||||||
<entry name="!?*.scala" />
|
|
||||||
<entry name="!?*.flex" />
|
|
||||||
<entry name="!?*.kt" />
|
|
||||||
<entry name="!?*.clj" />
|
|
||||||
<entry name="!?*.aj" />
|
|
||||||
</wildcardResourcePatterns>
|
|
||||||
<annotationProcessing>
|
|
||||||
<profile default="true" name="Default" enabled="false">
|
|
||||||
<processorPath useClasspath="true" />
|
|
||||||
</profile>
|
|
||||||
</annotationProcessing>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
<component name="CopyrightManager">
|
|
||||||
<settings default="" />
|
|
||||||
</component>
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="EntryPointsManager">
|
|
||||||
<entry_points version="2.0" />
|
|
||||||
</component>
|
|
||||||
<component name="MavenImportPreferences">
|
|
||||||
<option name="generalSettings">
|
|
||||||
<MavenGeneralSettings>
|
|
||||||
<option name="mavenHome" value="Bundled (Maven 3)" />
|
|
||||||
</MavenGeneralSettings>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
|
||||||
<OptionsSetting value="true" id="Add" />
|
|
||||||
<OptionsSetting value="true" id="Remove" />
|
|
||||||
<OptionsSetting value="true" id="Checkout" />
|
|
||||||
<OptionsSetting value="true" id="Update" />
|
|
||||||
<OptionsSetting value="true" id="Status" />
|
|
||||||
<OptionsSetting value="true" id="Edit" />
|
|
||||||
<ConfirmationsSetting value="0" id="Add" />
|
|
||||||
<ConfirmationsSetting value="0" id="Remove" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/Groovy.iml" filepath="$PROJECT_DIR$/Groovy.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
Welcome to the Groovy Gilded Rose
|
|
||||||
=================================
|
|
||||||
|
|
||||||
to run the test, you can either:
|
|
||||||
- run them from your favorite IDE
|
|
||||||
- make sure you have installed language support for Groovy
|
|
||||||
- IntelliJ:
|
|
||||||
- open project
|
|
||||||
- choose this folder (Groovy)
|
|
||||||
- Eclipse:
|
|
||||||
- new Groovy Project
|
|
||||||
- choose this folder (Groovy) as the project folder
|
|
||||||
- add JUnit to build path
|
|
||||||
- run the test from the src/ folder in your shell:
|
|
||||||
- $ cd src/
|
|
||||||
- $ groovy com/gildedrose/GildedRoseTest.groovy
|
|
||||||
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id 'groovy'
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceCompatibility = '1.8'
|
|
||||||
targetCompatibility = '1.8'
|
|
||||||
group='com.gildedrose'
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation 'org.codehaus.groovy:groovy:3.0.12'
|
|
||||||
|
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.2'
|
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
|
|
||||||
}
|
|
||||||
|
|
||||||
test {
|
|
||||||
useJUnitPlatform()
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
||||||
185
Groovy/gradlew
vendored
185
Groovy/gradlew
vendored
@ -1,185 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copyright 2015 the original author or authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## Gradle start up script for UN*X
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
PRG="$0"
|
|
||||||
# Need this for relative symlinks.
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG=`dirname "$PRG"`"/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
SAVED="`pwd`"
|
|
||||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
|
||||||
APP_HOME="`pwd -P`"
|
|
||||||
cd "$SAVED" >/dev/null
|
|
||||||
|
|
||||||
APP_NAME="Gradle"
|
|
||||||
APP_BASE_NAME=`basename "$0"`
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD="maximum"
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN* )
|
|
||||||
cygwin=true
|
|
||||||
;;
|
|
||||||
Darwin* )
|
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MSYS* | MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
NONSTOP* )
|
|
||||||
nonstop=true
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="java"
|
|
||||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
|
||||||
MAX_FD="$MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
ulimit -n $MAX_FD
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Darwin, add options to specify how the application appears in the dock
|
|
||||||
if $darwin; then
|
|
||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
|
||||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
|
||||||
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
|
||||||
SEP=""
|
|
||||||
for dir in $ROOTDIRSRAW ; do
|
|
||||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
|
||||||
SEP="|"
|
|
||||||
done
|
|
||||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
|
||||||
# Add a user-defined pattern to the cygpath arguments
|
|
||||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
|
||||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
|
||||||
fi
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
i=0
|
|
||||||
for arg in "$@" ; do
|
|
||||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
|
||||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
|
||||||
|
|
||||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
|
||||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
|
||||||
else
|
|
||||||
eval `echo args$i`="\"$arg\""
|
|
||||||
fi
|
|
||||||
i=`expr $i + 1`
|
|
||||||
done
|
|
||||||
case $i in
|
|
||||||
0) set -- ;;
|
|
||||||
1) set -- "$args0" ;;
|
|
||||||
2) set -- "$args0" "$args1" ;;
|
|
||||||
3) set -- "$args0" "$args1" "$args2" ;;
|
|
||||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
|
||||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
|
||||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
|
||||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
|
||||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
|
||||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Escape application args
|
|
||||||
save () {
|
|
||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
|
||||||
echo " "
|
|
||||||
}
|
|
||||||
APP_ARGS=`save "$@"`
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
||||||
89
Groovy/gradlew.bat
vendored
89
Groovy/gradlew.bat
vendored
@ -1,89 +0,0 @@
|
|||||||
@rem
|
|
||||||
@rem Copyright 2015 the original author or authors.
|
|
||||||
@rem
|
|
||||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
@rem you may not use this file except in compliance with the License.
|
|
||||||
@rem You may obtain a copy of the License at
|
|
||||||
@rem
|
|
||||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
@rem
|
|
||||||
@rem Unless required by applicable law or agreed to in writing, software
|
|
||||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
@rem See the License for the specific language governing permissions and
|
|
||||||
@rem limitations under the License.
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%" == "" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem Gradle startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%
|
|
||||||
|
|
||||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
||||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if "%ERRORLEVEL%" == "0" goto execute
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
package com.gildedrose
|
|
||||||
|
|
||||||
class GildedRose {
|
|
||||||
Item[] items
|
|
||||||
|
|
||||||
GildedRose(Item[] items) {
|
|
||||||
this.items = items
|
|
||||||
}
|
|
||||||
|
|
||||||
void updateQuality() {
|
|
||||||
for (int i = 0; i < items.length; i++) {
|
|
||||||
if (!items[i].name.equals("Aged Brie")
|
|
||||||
&& !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].quality > 0) {
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].quality = items[i].quality - 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1
|
|
||||||
|
|
||||||
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].sellIn < 11) {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 6) {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].sellIn = items[i].sellIn - 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 0) {
|
|
||||||
if (!items[i].name.equals("Aged Brie")) {
|
|
||||||
if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].quality > 0) {
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].quality = items[i].quality - 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
items[i].quality = items[i].quality - items[i].quality
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
package com.gildedrose
|
|
||||||
|
|
||||||
class Item {
|
|
||||||
|
|
||||||
String name
|
|
||||||
|
|
||||||
int sellIn
|
|
||||||
|
|
||||||
int quality
|
|
||||||
|
|
||||||
Item(String name, int sellIn, int quality) {
|
|
||||||
this.name = name
|
|
||||||
this.sellIn = sellIn
|
|
||||||
this.quality = quality
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
String toString() {
|
|
||||||
return this.name + ", " + this.sellIn + ", " + this.quality
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
package com.gildedrose
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test
|
|
||||||
|
|
||||||
class GildedRoseTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void "foo"() {
|
|
||||||
def items = [ new Item("foo", 0, 0) ] as Item[]
|
|
||||||
def app = new GildedRose(items)
|
|
||||||
app.updateQuality()
|
|
||||||
assert "fixme" == app.items[0].name
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
package com.gildedrose
|
|
||||||
|
|
||||||
println("OMGHAI!")
|
|
||||||
|
|
||||||
Item[] items = [
|
|
||||||
new Item("+5 Dexterity Vest", 10, 20),
|
|
||||||
new Item("Aged Brie", 2, 0),
|
|
||||||
new Item("Elixir of the Mongoose", 5, 7),
|
|
||||||
new Item("Sulfuras, Hand of Ragnaros", 0, 80),
|
|
||||||
new Item("Sulfuras, Hand of Ragnaros", -1, 80),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49),
|
|
||||||
// this conjured item does not work properly yet
|
|
||||||
new Item("Conjured Mana Cake", 3, 6)] as Item[]
|
|
||||||
|
|
||||||
GildedRose app = new GildedRose(items)
|
|
||||||
|
|
||||||
int days = 2
|
|
||||||
if (args.length > 0) {
|
|
||||||
days = Integer.parseInt(args[0]) + 1
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < days; i++) {
|
|
||||||
println("-------- day " + i + " --------")
|
|
||||||
println("name, sellIn, quality")
|
|
||||||
for (Item item in items) {
|
|
||||||
println(item)
|
|
||||||
}
|
|
||||||
println ""
|
|
||||||
app.updateQuality()
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
[*]
|
|
||||||
charset = utf-8
|
|
||||||
indent_size = 4
|
|
||||||
indent_style = space
|
|
||||||
insert_final_newline = true
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
13
Java-Approvals/.gitignore
vendored
13
Java-Approvals/.gitignore
vendored
@ -1,13 +0,0 @@
|
|||||||
.idea/
|
|
||||||
*.iml
|
|
||||||
target/
|
|
||||||
|
|
||||||
.classpath
|
|
||||||
.project
|
|
||||||
bin/
|
|
||||||
.settings/
|
|
||||||
|
|
||||||
# Gradle
|
|
||||||
.gradle
|
|
||||||
/build/
|
|
||||||
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2007-present the original author or authors.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import java.net.*;
|
|
||||||
import java.io.*;
|
|
||||||
import java.nio.channels.*;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
public class MavenWrapperDownloader {
|
|
||||||
|
|
||||||
private static final String WRAPPER_VERSION = "0.5.6";
|
|
||||||
/**
|
|
||||||
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
|
||||||
*/
|
|
||||||
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
|
|
||||||
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
|
|
||||||
* use instead of the default one.
|
|
||||||
*/
|
|
||||||
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
|
|
||||||
".mvn/wrapper/maven-wrapper.properties";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Path where the maven-wrapper.jar will be saved to.
|
|
||||||
*/
|
|
||||||
private static final String MAVEN_WRAPPER_JAR_PATH =
|
|
||||||
".mvn/wrapper/maven-wrapper.jar";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Name of the property which should be used to override the default download url for the wrapper.
|
|
||||||
*/
|
|
||||||
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
|
|
||||||
|
|
||||||
public static void main(String args[]) {
|
|
||||||
System.out.println("- Downloader started");
|
|
||||||
File baseDirectory = new File(args[0]);
|
|
||||||
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
|
|
||||||
|
|
||||||
// If the maven-wrapper.properties exists, read it and check if it contains a custom
|
|
||||||
// wrapperUrl parameter.
|
|
||||||
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
|
|
||||||
String url = DEFAULT_DOWNLOAD_URL;
|
|
||||||
if(mavenWrapperPropertyFile.exists()) {
|
|
||||||
FileInputStream mavenWrapperPropertyFileInputStream = null;
|
|
||||||
try {
|
|
||||||
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
|
|
||||||
Properties mavenWrapperProperties = new Properties();
|
|
||||||
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
|
|
||||||
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
|
|
||||||
} catch (IOException e) {
|
|
||||||
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if(mavenWrapperPropertyFileInputStream != null) {
|
|
||||||
mavenWrapperPropertyFileInputStream.close();
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
// Ignore ...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println("- Downloading from: " + url);
|
|
||||||
|
|
||||||
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
|
|
||||||
if(!outputFile.getParentFile().exists()) {
|
|
||||||
if(!outputFile.getParentFile().mkdirs()) {
|
|
||||||
System.out.println(
|
|
||||||
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
|
|
||||||
try {
|
|
||||||
downloadFileFromURL(url, outputFile);
|
|
||||||
System.out.println("Done");
|
|
||||||
System.exit(0);
|
|
||||||
} catch (Throwable e) {
|
|
||||||
System.out.println("- Error downloading");
|
|
||||||
e.printStackTrace();
|
|
||||||
System.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
|
|
||||||
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
|
|
||||||
String username = System.getenv("MVNW_USERNAME");
|
|
||||||
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
|
|
||||||
Authenticator.setDefault(new Authenticator() {
|
|
||||||
@Override
|
|
||||||
protected PasswordAuthentication getPasswordAuthentication() {
|
|
||||||
return new PasswordAuthentication(username, password);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
URL website = new URL(urlString);
|
|
||||||
ReadableByteChannel rbc;
|
|
||||||
rbc = Channels.newChannel(website.openStream());
|
|
||||||
FileOutputStream fos = new FileOutputStream(destination);
|
|
||||||
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
|
|
||||||
fos.close();
|
|
||||||
rbc.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
BIN
Java-Approvals/.mvn/wrapper/maven-wrapper.jar
vendored
BIN
Java-Approvals/.mvn/wrapper/maven-wrapper.jar
vendored
Binary file not shown.
@ -1,18 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
|
|
||||||
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
# Gilded Rose in Java with Approval Tests
|
|
||||||
|
|
||||||
This folder has a unit test that uses [Approvals](https://github.com/approvals/approvaltests.java)
|
|
||||||
|
|
||||||
There are two test cases here with different styles:
|
|
||||||
|
|
||||||
* "foo" is more similar to the unit test from the 'Java' version
|
|
||||||
* "thirtyDays" is more similar to the TextTest from the 'Java' version
|
|
||||||
|
|
||||||
I suggest choosing one style to develop and deleting the other.
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id 'java'
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.2'
|
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.6.2'
|
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
|
|
||||||
testImplementation 'com.approvaltests:approvaltests:12.3.1'
|
|
||||||
}
|
|
||||||
|
|
||||||
group = 'com.gildedrose'
|
|
||||||
version = '0.0.1-SNAPSHOT'
|
|
||||||
sourceCompatibility = '1.8'
|
|
||||||
|
|
||||||
test {
|
|
||||||
useJUnitPlatform()
|
|
||||||
}
|
|
||||||
BIN
Java-Approvals/gradle/wrapper/gradle-wrapper.jar
vendored
BIN
Java-Approvals/gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
@ -1,5 +0,0 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
||||||
183
Java-Approvals/gradlew
vendored
183
Java-Approvals/gradlew
vendored
@ -1,183 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copyright 2015 the original author or authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## Gradle start up script for UN*X
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
PRG="$0"
|
|
||||||
# Need this for relative symlinks.
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG=`dirname "$PRG"`"/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
SAVED="`pwd`"
|
|
||||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
|
||||||
APP_HOME="`pwd -P`"
|
|
||||||
cd "$SAVED" >/dev/null
|
|
||||||
|
|
||||||
APP_NAME="Gradle"
|
|
||||||
APP_BASE_NAME=`basename "$0"`
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD="maximum"
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN* )
|
|
||||||
cygwin=true
|
|
||||||
;;
|
|
||||||
Darwin* )
|
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
NONSTOP* )
|
|
||||||
nonstop=true
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="java"
|
|
||||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
|
||||||
MAX_FD="$MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
ulimit -n $MAX_FD
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Darwin, add options to specify how the application appears in the dock
|
|
||||||
if $darwin; then
|
|
||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
|
||||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
|
||||||
SEP=""
|
|
||||||
for dir in $ROOTDIRSRAW ; do
|
|
||||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
|
||||||
SEP="|"
|
|
||||||
done
|
|
||||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
|
||||||
# Add a user-defined pattern to the cygpath arguments
|
|
||||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
|
||||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
|
||||||
fi
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
i=0
|
|
||||||
for arg in "$@" ; do
|
|
||||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
|
||||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
|
||||||
|
|
||||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
|
||||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
|
||||||
else
|
|
||||||
eval `echo args$i`="\"$arg\""
|
|
||||||
fi
|
|
||||||
i=`expr $i + 1`
|
|
||||||
done
|
|
||||||
case $i in
|
|
||||||
0) set -- ;;
|
|
||||||
1) set -- "$args0" ;;
|
|
||||||
2) set -- "$args0" "$args1" ;;
|
|
||||||
3) set -- "$args0" "$args1" "$args2" ;;
|
|
||||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
|
||||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
|
||||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
|
||||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
|
||||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
|
||||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Escape application args
|
|
||||||
save () {
|
|
||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
|
||||||
echo " "
|
|
||||||
}
|
|
||||||
APP_ARGS=`save "$@"`
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
||||||
100
Java-Approvals/gradlew.bat
vendored
100
Java-Approvals/gradlew.bat
vendored
@ -1,100 +0,0 @@
|
|||||||
@rem
|
|
||||||
@rem Copyright 2015 the original author or authors.
|
|
||||||
@rem
|
|
||||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
@rem you may not use this file except in compliance with the License.
|
|
||||||
@rem You may obtain a copy of the License at
|
|
||||||
@rem
|
|
||||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
@rem
|
|
||||||
@rem Unless required by applicable law or agreed to in writing, software
|
|
||||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
@rem See the License for the specific language governing permissions and
|
|
||||||
@rem limitations under the License.
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%" == "" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem Gradle startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if "%ERRORLEVEL%" == "0" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:init
|
|
||||||
@rem Get command-line arguments, handling Windows variants
|
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
|
||||||
|
|
||||||
:win9xME_args
|
|
||||||
@rem Slurp the command line arguments.
|
|
||||||
set CMD_LINE_ARGS=
|
|
||||||
set _SKIP=2
|
|
||||||
|
|
||||||
:win9xME_args_slurp
|
|
||||||
if "x%~1" == "x" goto execute
|
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
||||||
316
Java-Approvals/mvnw
vendored
316
Java-Approvals/mvnw
vendored
@ -1,316 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Maven Start Up Batch script
|
|
||||||
#
|
|
||||||
# Required ENV vars:
|
|
||||||
# ------------------
|
|
||||||
# JAVA_HOME - location of a JDK home dir
|
|
||||||
#
|
|
||||||
# Optional ENV vars
|
|
||||||
# -----------------
|
|
||||||
# M2_HOME - location of maven2's installed home dir
|
|
||||||
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
|
||||||
# e.g. to debug Maven itself, use
|
|
||||||
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
|
||||||
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
|
||||||
|
|
||||||
if [ -f /usr/local/etc/mavenrc ] ; then
|
|
||||||
. /usr/local/etc/mavenrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /etc/mavenrc ] ; then
|
|
||||||
. /etc/mavenrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$HOME/.mavenrc" ] ; then
|
|
||||||
. "$HOME/.mavenrc"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# OS specific support. $var _must_ be set to either true or false.
|
|
||||||
cygwin=false;
|
|
||||||
darwin=false;
|
|
||||||
mingw=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN*) cygwin=true ;;
|
|
||||||
MINGW*) mingw=true;;
|
|
||||||
Darwin*) darwin=true
|
|
||||||
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
|
||||||
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
|
||||||
if [ -z "$JAVA_HOME" ]; then
|
|
||||||
if [ -x "/usr/libexec/java_home" ]; then
|
|
||||||
export JAVA_HOME="`/usr/libexec/java_home`"
|
|
||||||
else
|
|
||||||
export JAVA_HOME="/Library/Java/Home"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -z "$JAVA_HOME" ] ; then
|
|
||||||
if [ -r /etc/gentoo-release ] ; then
|
|
||||||
JAVA_HOME=`java-config --jre-home`
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$M2_HOME" ] ; then
|
|
||||||
## resolve links - $0 may be a link to maven's home
|
|
||||||
PRG="$0"
|
|
||||||
|
|
||||||
# need this for relative symlinks
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG="`dirname "$PRG"`/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
saveddir=`pwd`
|
|
||||||
|
|
||||||
M2_HOME=`dirname "$PRG"`/..
|
|
||||||
|
|
||||||
# make it fully qualified
|
|
||||||
M2_HOME=`cd "$M2_HOME" && pwd`
|
|
||||||
|
|
||||||
cd "$saveddir"
|
|
||||||
# echo Using m2 at $M2_HOME
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
|
||||||
if $cygwin ; then
|
|
||||||
[ -n "$M2_HOME" ] &&
|
|
||||||
M2_HOME=`cygpath --unix "$M2_HOME"`
|
|
||||||
[ -n "$JAVA_HOME" ] &&
|
|
||||||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
|
||||||
[ -n "$CLASSPATH" ] &&
|
|
||||||
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Mingw, ensure paths are in UNIX format before anything is touched
|
|
||||||
if $mingw ; then
|
|
||||||
[ -n "$M2_HOME" ] &&
|
|
||||||
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
|
||||||
[ -n "$JAVA_HOME" ] &&
|
|
||||||
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$JAVA_HOME" ]; then
|
|
||||||
javaExecutable="`which javac`"
|
|
||||||
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
|
||||||
# readlink(1) is not available as standard on Solaris 10.
|
|
||||||
readLink=`which readlink`
|
|
||||||
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
|
||||||
if $darwin ; then
|
|
||||||
javaHome="`dirname \"$javaExecutable\"`"
|
|
||||||
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
|
||||||
else
|
|
||||||
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
|
||||||
fi
|
|
||||||
javaHome="`dirname \"$javaExecutable\"`"
|
|
||||||
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
|
||||||
JAVA_HOME="$javaHome"
|
|
||||||
export JAVA_HOME
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$JAVACMD" ] ; then
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="`\\unset -f command; \\command -v java`"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
echo "Error: JAVA_HOME is not defined correctly." >&2
|
|
||||||
echo " We cannot execute $JAVACMD" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$JAVA_HOME" ] ; then
|
|
||||||
echo "Warning: JAVA_HOME environment variable is not set."
|
|
||||||
fi
|
|
||||||
|
|
||||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
|
||||||
|
|
||||||
# traverses directory structure from process work directory to filesystem root
|
|
||||||
# first directory with .mvn subdirectory is considered project base directory
|
|
||||||
find_maven_basedir() {
|
|
||||||
|
|
||||||
if [ -z "$1" ]
|
|
||||||
then
|
|
||||||
echo "Path not specified to find_maven_basedir"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
basedir="$1"
|
|
||||||
wdir="$1"
|
|
||||||
while [ "$wdir" != '/' ] ; do
|
|
||||||
if [ -d "$wdir"/.mvn ] ; then
|
|
||||||
basedir=$wdir
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
|
||||||
if [ -d "${wdir}" ]; then
|
|
||||||
wdir=`cd "$wdir/.."; pwd`
|
|
||||||
fi
|
|
||||||
# end of workaround
|
|
||||||
done
|
|
||||||
echo "${basedir}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# concatenates all lines of a file
|
|
||||||
concat_lines() {
|
|
||||||
if [ -f "$1" ]; then
|
|
||||||
echo "$(tr -s '\n' ' ' < "$1")"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
BASE_DIR=`find_maven_basedir "$(pwd)"`
|
|
||||||
if [ -z "$BASE_DIR" ]; then
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################################################################################
|
|
||||||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
|
||||||
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
|
||||||
##########################################################################################
|
|
||||||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
|
||||||
fi
|
|
||||||
if [ -n "$MVNW_REPOURL" ]; then
|
|
||||||
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
|
||||||
else
|
|
||||||
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
|
||||||
fi
|
|
||||||
while IFS="=" read key value; do
|
|
||||||
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
|
|
||||||
esac
|
|
||||||
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Downloading from: $jarUrl"
|
|
||||||
fi
|
|
||||||
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
|
||||||
if $cygwin; then
|
|
||||||
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
|
|
||||||
fi
|
|
||||||
|
|
||||||
if command -v wget > /dev/null; then
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Found wget ... using wget"
|
|
||||||
fi
|
|
||||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
|
||||||
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
|
|
||||||
else
|
|
||||||
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
|
|
||||||
fi
|
|
||||||
elif command -v curl > /dev/null; then
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Found curl ... using curl"
|
|
||||||
fi
|
|
||||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
|
||||||
curl -o "$wrapperJarPath" "$jarUrl" -f
|
|
||||||
else
|
|
||||||
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Falling back to using Java to download"
|
|
||||||
fi
|
|
||||||
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
|
||||||
# For Cygwin, switch paths to Windows format before running javac
|
|
||||||
if $cygwin; then
|
|
||||||
javaClass=`cygpath --path --windows "$javaClass"`
|
|
||||||
fi
|
|
||||||
if [ -e "$javaClass" ]; then
|
|
||||||
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo " - Compiling MavenWrapperDownloader.java ..."
|
|
||||||
fi
|
|
||||||
# Compiling the Java class
|
|
||||||
("$JAVA_HOME/bin/javac" "$javaClass")
|
|
||||||
fi
|
|
||||||
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
|
||||||
# Running the downloader
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo " - Running MavenWrapperDownloader.java ..."
|
|
||||||
fi
|
|
||||||
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
##########################################################################################
|
|
||||||
# End of extension
|
|
||||||
##########################################################################################
|
|
||||||
|
|
||||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo $MAVEN_PROJECTBASEDIR
|
|
||||||
fi
|
|
||||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
|
||||||
if $cygwin; then
|
|
||||||
[ -n "$M2_HOME" ] &&
|
|
||||||
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
|
||||||
[ -n "$JAVA_HOME" ] &&
|
|
||||||
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
|
||||||
[ -n "$CLASSPATH" ] &&
|
|
||||||
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
|
||||||
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
|
||||||
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Provide a "standardized" way to retrieve the CLI args that will
|
|
||||||
# work with both Windows and non-Windows executions.
|
|
||||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
|
||||||
export MAVEN_CMD_LINE_ARGS
|
|
||||||
|
|
||||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
|
||||||
|
|
||||||
exec "$JAVACMD" \
|
|
||||||
$MAVEN_OPTS \
|
|
||||||
$MAVEN_DEBUG_OPTS \
|
|
||||||
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
|
||||||
"-Dmaven.home=${M2_HOME}" \
|
|
||||||
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
|
||||||
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|
|
||||||
188
Java-Approvals/mvnw.cmd
vendored
188
Java-Approvals/mvnw.cmd
vendored
@ -1,188 +0,0 @@
|
|||||||
@REM ----------------------------------------------------------------------------
|
|
||||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
@REM or more contributor license agreements. See the NOTICE file
|
|
||||||
@REM distributed with this work for additional information
|
|
||||||
@REM regarding copyright ownership. The ASF licenses this file
|
|
||||||
@REM to you under the Apache License, Version 2.0 (the
|
|
||||||
@REM "License"); you may not use this file except in compliance
|
|
||||||
@REM with the License. You may obtain a copy of the License at
|
|
||||||
@REM
|
|
||||||
@REM http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
@REM
|
|
||||||
@REM Unless required by applicable law or agreed to in writing,
|
|
||||||
@REM software distributed under the License is distributed on an
|
|
||||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
@REM KIND, either express or implied. See the License for the
|
|
||||||
@REM specific language governing permissions and limitations
|
|
||||||
@REM under the License.
|
|
||||||
@REM ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
@REM ----------------------------------------------------------------------------
|
|
||||||
@REM Maven Start Up Batch script
|
|
||||||
@REM
|
|
||||||
@REM Required ENV vars:
|
|
||||||
@REM JAVA_HOME - location of a JDK home dir
|
|
||||||
@REM
|
|
||||||
@REM Optional ENV vars
|
|
||||||
@REM M2_HOME - location of maven2's installed home dir
|
|
||||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
|
||||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
|
|
||||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
|
||||||
@REM e.g. to debug Maven itself, use
|
|
||||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
|
||||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
|
||||||
@REM ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
|
||||||
@echo off
|
|
||||||
@REM set title of command window
|
|
||||||
title %0
|
|
||||||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
|
|
||||||
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
|
||||||
|
|
||||||
@REM set %HOME% to equivalent of $HOME
|
|
||||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
|
||||||
|
|
||||||
@REM Execute a user defined script before this one
|
|
||||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
|
||||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
|
||||||
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
|
|
||||||
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
|
|
||||||
:skipRcPre
|
|
||||||
|
|
||||||
@setlocal
|
|
||||||
|
|
||||||
set ERROR_CODE=0
|
|
||||||
|
|
||||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
|
||||||
@setlocal
|
|
||||||
|
|
||||||
@REM ==== START VALIDATION ====
|
|
||||||
if not "%JAVA_HOME%" == "" goto OkJHome
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo Error: JAVA_HOME not found in your environment. >&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
|
||||||
echo location of your Java installation. >&2
|
|
||||||
echo.
|
|
||||||
goto error
|
|
||||||
|
|
||||||
:OkJHome
|
|
||||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
|
||||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
|
||||||
echo location of your Java installation. >&2
|
|
||||||
echo.
|
|
||||||
goto error
|
|
||||||
|
|
||||||
@REM ==== END VALIDATION ====
|
|
||||||
|
|
||||||
:init
|
|
||||||
|
|
||||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
|
||||||
@REM Fallback to current working directory if not found.
|
|
||||||
|
|
||||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
|
||||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
|
||||||
|
|
||||||
set EXEC_DIR=%CD%
|
|
||||||
set WDIR=%EXEC_DIR%
|
|
||||||
:findBaseDir
|
|
||||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
|
||||||
cd ..
|
|
||||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
|
||||||
set WDIR=%CD%
|
|
||||||
goto findBaseDir
|
|
||||||
|
|
||||||
:baseDirFound
|
|
||||||
set MAVEN_PROJECTBASEDIR=%WDIR%
|
|
||||||
cd "%EXEC_DIR%"
|
|
||||||
goto endDetectBaseDir
|
|
||||||
|
|
||||||
:baseDirNotFound
|
|
||||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
|
||||||
cd "%EXEC_DIR%"
|
|
||||||
|
|
||||||
:endDetectBaseDir
|
|
||||||
|
|
||||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
|
||||||
|
|
||||||
@setlocal EnableExtensions EnableDelayedExpansion
|
|
||||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
|
||||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
|
||||||
|
|
||||||
:endReadAdditionalConfig
|
|
||||||
|
|
||||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
|
||||||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
|
|
||||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
|
||||||
|
|
||||||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
|
||||||
|
|
||||||
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
|
|
||||||
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
|
|
||||||
)
|
|
||||||
|
|
||||||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
|
||||||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
|
|
||||||
if exist %WRAPPER_JAR% (
|
|
||||||
if "%MVNW_VERBOSE%" == "true" (
|
|
||||||
echo Found %WRAPPER_JAR%
|
|
||||||
)
|
|
||||||
) else (
|
|
||||||
if not "%MVNW_REPOURL%" == "" (
|
|
||||||
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
|
||||||
)
|
|
||||||
if "%MVNW_VERBOSE%" == "true" (
|
|
||||||
echo Couldn't find %WRAPPER_JAR%, downloading it ...
|
|
||||||
echo Downloading from: %DOWNLOAD_URL%
|
|
||||||
)
|
|
||||||
|
|
||||||
powershell -Command "&{"^
|
|
||||||
"$webclient = new-object System.Net.WebClient;"^
|
|
||||||
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
|
|
||||||
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
|
|
||||||
"}"^
|
|
||||||
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
|
|
||||||
"}"
|
|
||||||
if "%MVNW_VERBOSE%" == "true" (
|
|
||||||
echo Finished downloading %WRAPPER_JAR%
|
|
||||||
)
|
|
||||||
)
|
|
||||||
@REM End of extension
|
|
||||||
|
|
||||||
@REM Provide a "standardized" way to retrieve the CLI args that will
|
|
||||||
@REM work with both Windows and non-Windows executions.
|
|
||||||
set MAVEN_CMD_LINE_ARGS=%*
|
|
||||||
|
|
||||||
%MAVEN_JAVA_EXE% ^
|
|
||||||
%JVM_CONFIG_MAVEN_PROPS% ^
|
|
||||||
%MAVEN_OPTS% ^
|
|
||||||
%MAVEN_DEBUG_OPTS% ^
|
|
||||||
-classpath %WRAPPER_JAR% ^
|
|
||||||
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
|
|
||||||
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
|
|
||||||
if ERRORLEVEL 1 goto error
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:error
|
|
||||||
set ERROR_CODE=1
|
|
||||||
|
|
||||||
:end
|
|
||||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
|
||||||
|
|
||||||
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
|
|
||||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
|
||||||
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
|
|
||||||
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
|
|
||||||
:skipRcPost
|
|
||||||
|
|
||||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
|
||||||
if "%MAVEN_BATCH_PAUSE%"=="on" pause
|
|
||||||
|
|
||||||
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
|
|
||||||
|
|
||||||
cmd /C exit /B %ERROR_CODE%
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<groupId>com.gildedrose</groupId>
|
|
||||||
<artifactId>gilded-rose-kata</artifactId>
|
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<java.version>1.8</java.version>
|
|
||||||
<junit.jupiter.version>5.6.2</junit.jupiter.version>
|
|
||||||
<maven.maven-compiler-plugin.version>3.1</maven.maven-compiler-plugin.version>
|
|
||||||
<maven.maven-surefire-plugin.version>3.0.0-M4</maven.maven-surefire-plugin.version>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.junit.jupiter</groupId>
|
|
||||||
<artifactId>junit-jupiter</artifactId>
|
|
||||||
<version>${junit.jupiter.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.approvaltests</groupId>
|
|
||||||
<artifactId>approvaltests</artifactId>
|
|
||||||
<version>12.1.1</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>${maven.maven-compiler-plugin.version}</version>
|
|
||||||
<configuration>
|
|
||||||
<source>${java.version}</source>
|
|
||||||
<target>${java.version}</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<version>${maven.maven-surefire-plugin.version}</version>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
@ -1 +0,0 @@
|
|||||||
rootProject.name = 'gilded-rose-kata'
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
class GildedRose {
|
|
||||||
Item[] items;
|
|
||||||
|
|
||||||
public GildedRose(Item[] items) {
|
|
||||||
this.items = items;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateQuality() {
|
|
||||||
for (int i = 0; i < items.length; i++) {
|
|
||||||
if (!items[i].name.equals("Aged Brie")
|
|
||||||
&& !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].quality > 0) {
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].quality = items[i].quality - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
|
|
||||||
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].sellIn < 11) {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 6) {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].sellIn = items[i].sellIn - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 0) {
|
|
||||||
if (!items[i].name.equals("Aged Brie")) {
|
|
||||||
if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].quality > 0) {
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].quality = items[i].quality - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
items[i].quality = items[i].quality - items[i].quality;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
public class Item {
|
|
||||||
|
|
||||||
public String name;
|
|
||||||
|
|
||||||
public int sellIn;
|
|
||||||
|
|
||||||
public int quality;
|
|
||||||
|
|
||||||
public Item(String name, int sellIn, int quality) {
|
|
||||||
this.name = name;
|
|
||||||
this.sellIn = sellIn;
|
|
||||||
this.quality = quality;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return this.name + ", " + this.sellIn + ", " + this.quality;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
public class Program {
|
|
||||||
|
|
||||||
public static void main(String... args) {
|
|
||||||
System.out.println("OMGHAI!");
|
|
||||||
|
|
||||||
Item[] items = new Item[] {
|
|
||||||
new Item("+5 Dexterity Vest", 10, 20),
|
|
||||||
new Item("Aged Brie", 2, 0),
|
|
||||||
new Item("Elixir of the Mongoose", 5, 7),
|
|
||||||
new Item("Sulfuras, Hand of Ragnaros", 0, 80),
|
|
||||||
new Item("Sulfuras, Hand of Ragnaros", -1, 80),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49),
|
|
||||||
// this conjured item does not work properly yet
|
|
||||||
new Item("Conjured Mana Cake", 3, 6) };
|
|
||||||
|
|
||||||
GildedRose app = new GildedRose(items);
|
|
||||||
|
|
||||||
for (int i = 0; i < 31; i++) {
|
|
||||||
System.out.println("-------- day " + i + " --------");
|
|
||||||
System.out.println("name, sellIn, quality");
|
|
||||||
for (int j = 0; j < items.length; j++) {
|
|
||||||
System.out.println(items[j]);
|
|
||||||
}
|
|
||||||
System.out.println("");
|
|
||||||
app.updateQuality();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.PrintStream;
|
|
||||||
|
|
||||||
import org.approvaltests.Approvals;
|
|
||||||
import org.approvaltests.reporters.DiffReporter;
|
|
||||||
import org.approvaltests.reporters.UseReporter;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.w3c.dom.Text;
|
|
||||||
|
|
||||||
@UseReporter(DiffReporter.class)
|
|
||||||
public class GildedRoseApprovalTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void foo() {
|
|
||||||
|
|
||||||
Item[] items = new Item[] { new Item("foo", 0, 0) };
|
|
||||||
GildedRose app = new GildedRose(items);
|
|
||||||
app.updateQuality();
|
|
||||||
|
|
||||||
Approvals.verifyAll("Items", items);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void thirtyDays() {
|
|
||||||
|
|
||||||
ByteArrayOutputStream fakeoutput = new ByteArrayOutputStream();
|
|
||||||
System.setOut(new PrintStream(fakeoutput));
|
|
||||||
System.setIn(new ByteArrayInputStream("a\n".getBytes()));
|
|
||||||
|
|
||||||
Program.main();
|
|
||||||
String output = fakeoutput.toString();
|
|
||||||
|
|
||||||
Approvals.verify(output);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
4
Java-Cucumber/.gitignore
vendored
4
Java-Cucumber/.gitignore
vendored
@ -1,4 +0,0 @@
|
|||||||
.idea/
|
|
||||||
.gradle/
|
|
||||||
build/
|
|
||||||
target/
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2007-present the original author or authors.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import java.net.*;
|
|
||||||
import java.io.*;
|
|
||||||
import java.nio.channels.*;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
public class MavenWrapperDownloader {
|
|
||||||
|
|
||||||
private static final String WRAPPER_VERSION = "0.5.6";
|
|
||||||
/**
|
|
||||||
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
|
||||||
*/
|
|
||||||
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
|
|
||||||
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
|
|
||||||
* use instead of the default one.
|
|
||||||
*/
|
|
||||||
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
|
|
||||||
".mvn/wrapper/maven-wrapper.properties";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Path where the maven-wrapper.jar will be saved to.
|
|
||||||
*/
|
|
||||||
private static final String MAVEN_WRAPPER_JAR_PATH =
|
|
||||||
".mvn/wrapper/maven-wrapper.jar";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Name of the property which should be used to override the default download url for the wrapper.
|
|
||||||
*/
|
|
||||||
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
|
|
||||||
|
|
||||||
public static void main(String args[]) {
|
|
||||||
System.out.println("- Downloader started");
|
|
||||||
File baseDirectory = new File(args[0]);
|
|
||||||
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
|
|
||||||
|
|
||||||
// If the maven-wrapper.properties exists, read it and check if it contains a custom
|
|
||||||
// wrapperUrl parameter.
|
|
||||||
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
|
|
||||||
String url = DEFAULT_DOWNLOAD_URL;
|
|
||||||
if(mavenWrapperPropertyFile.exists()) {
|
|
||||||
FileInputStream mavenWrapperPropertyFileInputStream = null;
|
|
||||||
try {
|
|
||||||
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
|
|
||||||
Properties mavenWrapperProperties = new Properties();
|
|
||||||
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
|
|
||||||
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
|
|
||||||
} catch (IOException e) {
|
|
||||||
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if(mavenWrapperPropertyFileInputStream != null) {
|
|
||||||
mavenWrapperPropertyFileInputStream.close();
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
// Ignore ...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println("- Downloading from: " + url);
|
|
||||||
|
|
||||||
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
|
|
||||||
if(!outputFile.getParentFile().exists()) {
|
|
||||||
if(!outputFile.getParentFile().mkdirs()) {
|
|
||||||
System.out.println(
|
|
||||||
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
|
|
||||||
try {
|
|
||||||
downloadFileFromURL(url, outputFile);
|
|
||||||
System.out.println("Done");
|
|
||||||
System.exit(0);
|
|
||||||
} catch (Throwable e) {
|
|
||||||
System.out.println("- Error downloading");
|
|
||||||
e.printStackTrace();
|
|
||||||
System.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
|
|
||||||
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
|
|
||||||
String username = System.getenv("MVNW_USERNAME");
|
|
||||||
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
|
|
||||||
Authenticator.setDefault(new Authenticator() {
|
|
||||||
@Override
|
|
||||||
protected PasswordAuthentication getPasswordAuthentication() {
|
|
||||||
return new PasswordAuthentication(username, password);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
URL website = new URL(urlString);
|
|
||||||
ReadableByteChannel rbc;
|
|
||||||
rbc = Channels.newChannel(website.openStream());
|
|
||||||
FileOutputStream fos = new FileOutputStream(destination);
|
|
||||||
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
|
|
||||||
fos.close();
|
|
||||||
rbc.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
BIN
Java-Cucumber/.mvn/wrapper/maven-wrapper.jar
vendored
BIN
Java-Cucumber/.mvn/wrapper/maven-wrapper.jar
vendored
Binary file not shown.
@ -1,18 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
|
|
||||||
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
### How to do the BDD
|
|
||||||
|
|
||||||
1. Write a test scenario in Feature file: **src/test/resources/GildedRose.feature**
|
|
||||||
2. Modify the StepDefinitions file to match the Feature description in: **src/test/java/com/gildedrose/StepDefinitions.java**
|
|
||||||
3. Run: **./gradlew cucumber** from project dir
|
|
||||||
|
|
||||||
Note: Please check https://cucumber.io for syntax references.
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
apply plugin: "groovy"
|
|
||||||
apply plugin: "java"
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceCompatibility = '1.8'
|
|
||||||
targetCompatibility = '1.8'
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation 'org.codehaus.groovy:groovy:3.0.8'
|
|
||||||
testImplementation 'io.cucumber:cucumber-java:6.10.4'
|
|
||||||
testImplementation 'io.cucumber:cucumber-junit:6.10.4'
|
|
||||||
testImplementation 'junit:junit:4.13.2'
|
|
||||||
}
|
|
||||||
|
|
||||||
configurations {
|
|
||||||
cucumberRuntime {
|
|
||||||
extendsFrom testImplementation
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test {
|
|
||||||
useJUnitPlatform()
|
|
||||||
testLogging {
|
|
||||||
events "passed", "skipped", "failed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task cucumber() {
|
|
||||||
dependsOn assemble, testClasses
|
|
||||||
doLast {
|
|
||||||
javaexec {
|
|
||||||
main = "io.cucumber.core.cli.Main"
|
|
||||||
classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
|
|
||||||
args = [
|
|
||||||
'--plugin', 'pretty',
|
|
||||||
'--plugin', 'html:target/cucumber-report.html',
|
|
||||||
'--glue', 'com.gildedrose',
|
|
||||||
'src/test/resources']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
BIN
Java-Cucumber/gradle/wrapper/gradle-wrapper.jar
vendored
BIN
Java-Cucumber/gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
@ -1,6 +0,0 @@
|
|||||||
#Tue Jul 05 09:24:35 CEST 2016
|
|
||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
|
||||||
160
Java-Cucumber/gradlew
vendored
160
Java-Cucumber/gradlew
vendored
@ -1,160 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## Gradle start up script for UN*X
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS=""
|
|
||||||
|
|
||||||
APP_NAME="Gradle"
|
|
||||||
APP_BASE_NAME=`basename "$0"`
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD="maximum"
|
|
||||||
|
|
||||||
warn ( ) {
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
die ( ) {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN* )
|
|
||||||
cygwin=true
|
|
||||||
;;
|
|
||||||
Darwin* )
|
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
PRG="$0"
|
|
||||||
# Need this for relative symlinks.
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG=`dirname "$PRG"`"/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
SAVED="`pwd`"
|
|
||||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
|
||||||
APP_HOME="`pwd -P`"
|
|
||||||
cd "$SAVED" >/dev/null
|
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="java"
|
|
||||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
|
||||||
MAX_FD="$MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
ulimit -n $MAX_FD
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Darwin, add options to specify how the application appears in the dock
|
|
||||||
if $darwin; then
|
|
||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
|
||||||
if $cygwin ; then
|
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
|
||||||
SEP=""
|
|
||||||
for dir in $ROOTDIRSRAW ; do
|
|
||||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
|
||||||
SEP="|"
|
|
||||||
done
|
|
||||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
|
||||||
# Add a user-defined pattern to the cygpath arguments
|
|
||||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
|
||||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
|
||||||
fi
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
i=0
|
|
||||||
for arg in "$@" ; do
|
|
||||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
|
||||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
|
||||||
|
|
||||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
|
||||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
|
||||||
else
|
|
||||||
eval `echo args$i`="\"$arg\""
|
|
||||||
fi
|
|
||||||
i=$((i+1))
|
|
||||||
done
|
|
||||||
case $i in
|
|
||||||
(0) set -- ;;
|
|
||||||
(1) set -- "$args0" ;;
|
|
||||||
(2) set -- "$args0" "$args1" ;;
|
|
||||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
|
||||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
|
||||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
|
||||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
|
||||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
|
||||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
|
||||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
|
||||||
function splitJvmOpts() {
|
|
||||||
JVM_OPTS=("$@")
|
|
||||||
}
|
|
||||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
|
||||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
|
||||||
|
|
||||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
|
||||||
90
Java-Cucumber/gradlew.bat
vendored
90
Java-Cucumber/gradlew.bat
vendored
@ -1,90 +0,0 @@
|
|||||||
@if "%DEBUG%" == "" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem Gradle startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS=
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if "%ERRORLEVEL%" == "0" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:init
|
|
||||||
@rem Get command-line arguments, handling Windowz variants
|
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
|
||||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
|
||||||
|
|
||||||
:win9xME_args
|
|
||||||
@rem Slurp the command line arguments.
|
|
||||||
set CMD_LINE_ARGS=
|
|
||||||
set _SKIP=2
|
|
||||||
|
|
||||||
:win9xME_args_slurp
|
|
||||||
if "x%~1" == "x" goto execute
|
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
|
||||||
goto execute
|
|
||||||
|
|
||||||
:4NT_args
|
|
||||||
@rem Get arguments from the 4NT Shell from JP Software
|
|
||||||
set CMD_LINE_ARGS=%$
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
||||||
316
Java-Cucumber/mvnw
vendored
316
Java-Cucumber/mvnw
vendored
@ -1,316 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Maven Start Up Batch script
|
|
||||||
#
|
|
||||||
# Required ENV vars:
|
|
||||||
# ------------------
|
|
||||||
# JAVA_HOME - location of a JDK home dir
|
|
||||||
#
|
|
||||||
# Optional ENV vars
|
|
||||||
# -----------------
|
|
||||||
# M2_HOME - location of maven2's installed home dir
|
|
||||||
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
|
||||||
# e.g. to debug Maven itself, use
|
|
||||||
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
|
||||||
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
|
||||||
|
|
||||||
if [ -f /usr/local/etc/mavenrc ] ; then
|
|
||||||
. /usr/local/etc/mavenrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /etc/mavenrc ] ; then
|
|
||||||
. /etc/mavenrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$HOME/.mavenrc" ] ; then
|
|
||||||
. "$HOME/.mavenrc"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# OS specific support. $var _must_ be set to either true or false.
|
|
||||||
cygwin=false;
|
|
||||||
darwin=false;
|
|
||||||
mingw=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN*) cygwin=true ;;
|
|
||||||
MINGW*) mingw=true;;
|
|
||||||
Darwin*) darwin=true
|
|
||||||
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
|
||||||
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
|
||||||
if [ -z "$JAVA_HOME" ]; then
|
|
||||||
if [ -x "/usr/libexec/java_home" ]; then
|
|
||||||
export JAVA_HOME="`/usr/libexec/java_home`"
|
|
||||||
else
|
|
||||||
export JAVA_HOME="/Library/Java/Home"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -z "$JAVA_HOME" ] ; then
|
|
||||||
if [ -r /etc/gentoo-release ] ; then
|
|
||||||
JAVA_HOME=`java-config --jre-home`
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$M2_HOME" ] ; then
|
|
||||||
## resolve links - $0 may be a link to maven's home
|
|
||||||
PRG="$0"
|
|
||||||
|
|
||||||
# need this for relative symlinks
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG="`dirname "$PRG"`/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
saveddir=`pwd`
|
|
||||||
|
|
||||||
M2_HOME=`dirname "$PRG"`/..
|
|
||||||
|
|
||||||
# make it fully qualified
|
|
||||||
M2_HOME=`cd "$M2_HOME" && pwd`
|
|
||||||
|
|
||||||
cd "$saveddir"
|
|
||||||
# echo Using m2 at $M2_HOME
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
|
||||||
if $cygwin ; then
|
|
||||||
[ -n "$M2_HOME" ] &&
|
|
||||||
M2_HOME=`cygpath --unix "$M2_HOME"`
|
|
||||||
[ -n "$JAVA_HOME" ] &&
|
|
||||||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
|
||||||
[ -n "$CLASSPATH" ] &&
|
|
||||||
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Mingw, ensure paths are in UNIX format before anything is touched
|
|
||||||
if $mingw ; then
|
|
||||||
[ -n "$M2_HOME" ] &&
|
|
||||||
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
|
||||||
[ -n "$JAVA_HOME" ] &&
|
|
||||||
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$JAVA_HOME" ]; then
|
|
||||||
javaExecutable="`which javac`"
|
|
||||||
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
|
||||||
# readlink(1) is not available as standard on Solaris 10.
|
|
||||||
readLink=`which readlink`
|
|
||||||
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
|
||||||
if $darwin ; then
|
|
||||||
javaHome="`dirname \"$javaExecutable\"`"
|
|
||||||
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
|
||||||
else
|
|
||||||
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
|
||||||
fi
|
|
||||||
javaHome="`dirname \"$javaExecutable\"`"
|
|
||||||
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
|
||||||
JAVA_HOME="$javaHome"
|
|
||||||
export JAVA_HOME
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$JAVACMD" ] ; then
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="`\\unset -f command; \\command -v java`"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
echo "Error: JAVA_HOME is not defined correctly." >&2
|
|
||||||
echo " We cannot execute $JAVACMD" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$JAVA_HOME" ] ; then
|
|
||||||
echo "Warning: JAVA_HOME environment variable is not set."
|
|
||||||
fi
|
|
||||||
|
|
||||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
|
||||||
|
|
||||||
# traverses directory structure from process work directory to filesystem root
|
|
||||||
# first directory with .mvn subdirectory is considered project base directory
|
|
||||||
find_maven_basedir() {
|
|
||||||
|
|
||||||
if [ -z "$1" ]
|
|
||||||
then
|
|
||||||
echo "Path not specified to find_maven_basedir"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
basedir="$1"
|
|
||||||
wdir="$1"
|
|
||||||
while [ "$wdir" != '/' ] ; do
|
|
||||||
if [ -d "$wdir"/.mvn ] ; then
|
|
||||||
basedir=$wdir
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
|
||||||
if [ -d "${wdir}" ]; then
|
|
||||||
wdir=`cd "$wdir/.."; pwd`
|
|
||||||
fi
|
|
||||||
# end of workaround
|
|
||||||
done
|
|
||||||
echo "${basedir}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# concatenates all lines of a file
|
|
||||||
concat_lines() {
|
|
||||||
if [ -f "$1" ]; then
|
|
||||||
echo "$(tr -s '\n' ' ' < "$1")"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
BASE_DIR=`find_maven_basedir "$(pwd)"`
|
|
||||||
if [ -z "$BASE_DIR" ]; then
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################################################################################
|
|
||||||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
|
||||||
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
|
||||||
##########################################################################################
|
|
||||||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
|
||||||
fi
|
|
||||||
if [ -n "$MVNW_REPOURL" ]; then
|
|
||||||
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
|
||||||
else
|
|
||||||
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
|
||||||
fi
|
|
||||||
while IFS="=" read key value; do
|
|
||||||
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
|
|
||||||
esac
|
|
||||||
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Downloading from: $jarUrl"
|
|
||||||
fi
|
|
||||||
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
|
||||||
if $cygwin; then
|
|
||||||
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
|
|
||||||
fi
|
|
||||||
|
|
||||||
if command -v wget > /dev/null; then
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Found wget ... using wget"
|
|
||||||
fi
|
|
||||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
|
||||||
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
|
|
||||||
else
|
|
||||||
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
|
|
||||||
fi
|
|
||||||
elif command -v curl > /dev/null; then
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Found curl ... using curl"
|
|
||||||
fi
|
|
||||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
|
||||||
curl -o "$wrapperJarPath" "$jarUrl" -f
|
|
||||||
else
|
|
||||||
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo "Falling back to using Java to download"
|
|
||||||
fi
|
|
||||||
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
|
||||||
# For Cygwin, switch paths to Windows format before running javac
|
|
||||||
if $cygwin; then
|
|
||||||
javaClass=`cygpath --path --windows "$javaClass"`
|
|
||||||
fi
|
|
||||||
if [ -e "$javaClass" ]; then
|
|
||||||
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo " - Compiling MavenWrapperDownloader.java ..."
|
|
||||||
fi
|
|
||||||
# Compiling the Java class
|
|
||||||
("$JAVA_HOME/bin/javac" "$javaClass")
|
|
||||||
fi
|
|
||||||
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
|
||||||
# Running the downloader
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo " - Running MavenWrapperDownloader.java ..."
|
|
||||||
fi
|
|
||||||
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
##########################################################################################
|
|
||||||
# End of extension
|
|
||||||
##########################################################################################
|
|
||||||
|
|
||||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
|
||||||
if [ "$MVNW_VERBOSE" = true ]; then
|
|
||||||
echo $MAVEN_PROJECTBASEDIR
|
|
||||||
fi
|
|
||||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
|
||||||
if $cygwin; then
|
|
||||||
[ -n "$M2_HOME" ] &&
|
|
||||||
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
|
||||||
[ -n "$JAVA_HOME" ] &&
|
|
||||||
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
|
||||||
[ -n "$CLASSPATH" ] &&
|
|
||||||
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
|
||||||
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
|
||||||
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Provide a "standardized" way to retrieve the CLI args that will
|
|
||||||
# work with both Windows and non-Windows executions.
|
|
||||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
|
||||||
export MAVEN_CMD_LINE_ARGS
|
|
||||||
|
|
||||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
|
||||||
|
|
||||||
exec "$JAVACMD" \
|
|
||||||
$MAVEN_OPTS \
|
|
||||||
$MAVEN_DEBUG_OPTS \
|
|
||||||
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
|
||||||
"-Dmaven.home=${M2_HOME}" \
|
|
||||||
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
|
||||||
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|
|
||||||
188
Java-Cucumber/mvnw.cmd
vendored
188
Java-Cucumber/mvnw.cmd
vendored
@ -1,188 +0,0 @@
|
|||||||
@REM ----------------------------------------------------------------------------
|
|
||||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
@REM or more contributor license agreements. See the NOTICE file
|
|
||||||
@REM distributed with this work for additional information
|
|
||||||
@REM regarding copyright ownership. The ASF licenses this file
|
|
||||||
@REM to you under the Apache License, Version 2.0 (the
|
|
||||||
@REM "License"); you may not use this file except in compliance
|
|
||||||
@REM with the License. You may obtain a copy of the License at
|
|
||||||
@REM
|
|
||||||
@REM http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
@REM
|
|
||||||
@REM Unless required by applicable law or agreed to in writing,
|
|
||||||
@REM software distributed under the License is distributed on an
|
|
||||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
@REM KIND, either express or implied. See the License for the
|
|
||||||
@REM specific language governing permissions and limitations
|
|
||||||
@REM under the License.
|
|
||||||
@REM ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
@REM ----------------------------------------------------------------------------
|
|
||||||
@REM Maven Start Up Batch script
|
|
||||||
@REM
|
|
||||||
@REM Required ENV vars:
|
|
||||||
@REM JAVA_HOME - location of a JDK home dir
|
|
||||||
@REM
|
|
||||||
@REM Optional ENV vars
|
|
||||||
@REM M2_HOME - location of maven2's installed home dir
|
|
||||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
|
||||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
|
|
||||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
|
||||||
@REM e.g. to debug Maven itself, use
|
|
||||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
|
||||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
|
||||||
@REM ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
|
||||||
@echo off
|
|
||||||
@REM set title of command window
|
|
||||||
title %0
|
|
||||||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
|
|
||||||
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
|
||||||
|
|
||||||
@REM set %HOME% to equivalent of $HOME
|
|
||||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
|
||||||
|
|
||||||
@REM Execute a user defined script before this one
|
|
||||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
|
||||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
|
||||||
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
|
|
||||||
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
|
|
||||||
:skipRcPre
|
|
||||||
|
|
||||||
@setlocal
|
|
||||||
|
|
||||||
set ERROR_CODE=0
|
|
||||||
|
|
||||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
|
||||||
@setlocal
|
|
||||||
|
|
||||||
@REM ==== START VALIDATION ====
|
|
||||||
if not "%JAVA_HOME%" == "" goto OkJHome
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo Error: JAVA_HOME not found in your environment. >&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
|
||||||
echo location of your Java installation. >&2
|
|
||||||
echo.
|
|
||||||
goto error
|
|
||||||
|
|
||||||
:OkJHome
|
|
||||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
|
||||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
|
||||||
echo location of your Java installation. >&2
|
|
||||||
echo.
|
|
||||||
goto error
|
|
||||||
|
|
||||||
@REM ==== END VALIDATION ====
|
|
||||||
|
|
||||||
:init
|
|
||||||
|
|
||||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
|
||||||
@REM Fallback to current working directory if not found.
|
|
||||||
|
|
||||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
|
||||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
|
||||||
|
|
||||||
set EXEC_DIR=%CD%
|
|
||||||
set WDIR=%EXEC_DIR%
|
|
||||||
:findBaseDir
|
|
||||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
|
||||||
cd ..
|
|
||||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
|
||||||
set WDIR=%CD%
|
|
||||||
goto findBaseDir
|
|
||||||
|
|
||||||
:baseDirFound
|
|
||||||
set MAVEN_PROJECTBASEDIR=%WDIR%
|
|
||||||
cd "%EXEC_DIR%"
|
|
||||||
goto endDetectBaseDir
|
|
||||||
|
|
||||||
:baseDirNotFound
|
|
||||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
|
||||||
cd "%EXEC_DIR%"
|
|
||||||
|
|
||||||
:endDetectBaseDir
|
|
||||||
|
|
||||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
|
||||||
|
|
||||||
@setlocal EnableExtensions EnableDelayedExpansion
|
|
||||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
|
||||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
|
||||||
|
|
||||||
:endReadAdditionalConfig
|
|
||||||
|
|
||||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
|
||||||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
|
|
||||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
|
||||||
|
|
||||||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
|
||||||
|
|
||||||
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
|
|
||||||
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
|
|
||||||
)
|
|
||||||
|
|
||||||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
|
||||||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
|
|
||||||
if exist %WRAPPER_JAR% (
|
|
||||||
if "%MVNW_VERBOSE%" == "true" (
|
|
||||||
echo Found %WRAPPER_JAR%
|
|
||||||
)
|
|
||||||
) else (
|
|
||||||
if not "%MVNW_REPOURL%" == "" (
|
|
||||||
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
|
||||||
)
|
|
||||||
if "%MVNW_VERBOSE%" == "true" (
|
|
||||||
echo Couldn't find %WRAPPER_JAR%, downloading it ...
|
|
||||||
echo Downloading from: %DOWNLOAD_URL%
|
|
||||||
)
|
|
||||||
|
|
||||||
powershell -Command "&{"^
|
|
||||||
"$webclient = new-object System.Net.WebClient;"^
|
|
||||||
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
|
|
||||||
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
|
|
||||||
"}"^
|
|
||||||
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
|
|
||||||
"}"
|
|
||||||
if "%MVNW_VERBOSE%" == "true" (
|
|
||||||
echo Finished downloading %WRAPPER_JAR%
|
|
||||||
)
|
|
||||||
)
|
|
||||||
@REM End of extension
|
|
||||||
|
|
||||||
@REM Provide a "standardized" way to retrieve the CLI args that will
|
|
||||||
@REM work with both Windows and non-Windows executions.
|
|
||||||
set MAVEN_CMD_LINE_ARGS=%*
|
|
||||||
|
|
||||||
%MAVEN_JAVA_EXE% ^
|
|
||||||
%JVM_CONFIG_MAVEN_PROPS% ^
|
|
||||||
%MAVEN_OPTS% ^
|
|
||||||
%MAVEN_DEBUG_OPTS% ^
|
|
||||||
-classpath %WRAPPER_JAR% ^
|
|
||||||
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
|
|
||||||
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
|
|
||||||
if ERRORLEVEL 1 goto error
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:error
|
|
||||||
set ERROR_CODE=1
|
|
||||||
|
|
||||||
:end
|
|
||||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
|
||||||
|
|
||||||
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
|
|
||||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
|
||||||
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
|
|
||||||
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
|
|
||||||
:skipRcPost
|
|
||||||
|
|
||||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
|
||||||
if "%MAVEN_BATCH_PAUSE%"=="on" pause
|
|
||||||
|
|
||||||
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
|
|
||||||
|
|
||||||
cmd /C exit /B %ERROR_CODE%
|
|
||||||
@ -1,59 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<groupId>com.gildedrose</groupId>
|
|
||||||
<artifactId>gilded-rose-kata</artifactId>
|
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<java.version>1.8</java.version>
|
|
||||||
<junit.version>4.13.2</junit.version>
|
|
||||||
<cucumber.java.version>6.10.4</cucumber.java.version>
|
|
||||||
<maven.maven-compiler-plugin.version>3.1</maven.maven-compiler-plugin.version>
|
|
||||||
<maven.maven-surefire-plugin.version>3.0.0-M4</maven.maven-surefire-plugin.version>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>junit</groupId>
|
|
||||||
<artifactId>junit</artifactId>
|
|
||||||
<version>${junit.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.cucumber</groupId>
|
|
||||||
<artifactId>cucumber-java</artifactId>
|
|
||||||
<version>${cucumber.java.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.cucumber</groupId>
|
|
||||||
<artifactId>cucumber-junit</artifactId>
|
|
||||||
<version>${cucumber.java.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>${maven.maven-compiler-plugin.version}</version>
|
|
||||||
<configuration>
|
|
||||||
<source>${java.version}</source>
|
|
||||||
<target>${java.version}</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<version>${maven.maven-surefire-plugin.version}</version>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
class GildedRose {
|
|
||||||
Item[] items;
|
|
||||||
|
|
||||||
public GildedRose(Item[] items) {
|
|
||||||
this.items = items;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateQuality() {
|
|
||||||
for (int i = 0; i < items.length; i++) {
|
|
||||||
if (!items[i].name.equals("Aged Brie")
|
|
||||||
&& !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].quality > 0) {
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].quality = items[i].quality - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
|
|
||||||
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].sellIn < 11) {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 6) {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].sellIn = items[i].sellIn - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 0) {
|
|
||||||
if (!items[i].name.equals("Aged Brie")) {
|
|
||||||
if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
if (items[i].quality > 0) {
|
|
||||||
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
items[i].quality = items[i].quality - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
items[i].quality = items[i].quality - items[i].quality;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
public class Item {
|
|
||||||
|
|
||||||
public String name;
|
|
||||||
|
|
||||||
public int sellIn;
|
|
||||||
|
|
||||||
public int quality;
|
|
||||||
|
|
||||||
public Item(String name, int sellIn, int quality) {
|
|
||||||
this.name = name;
|
|
||||||
this.sellIn = sellIn;
|
|
||||||
this.quality = quality;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return this.name + ", " + this.sellIn + ", " + this.quality;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
public class TexttestFixture {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
System.out.println("OMGHAI!");
|
|
||||||
|
|
||||||
Item[] items = new Item[] {
|
|
||||||
new Item("+5 Dexterity Vest", 10, 20), //
|
|
||||||
new Item("Aged Brie", 2, 0), //
|
|
||||||
new Item("Elixir of the Mongoose", 5, 7), //
|
|
||||||
new Item("Sulfuras, Hand of Ragnaros", 0, 80), //
|
|
||||||
new Item("Sulfuras, Hand of Ragnaros", -1, 80),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
|
|
||||||
new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49),
|
|
||||||
// this conjured item does not work properly yet
|
|
||||||
new Item("Conjured Mana Cake", 3, 6) };
|
|
||||||
|
|
||||||
GildedRose app = new GildedRose(items);
|
|
||||||
|
|
||||||
int days = 2;
|
|
||||||
if (args.length > 0) {
|
|
||||||
days = Integer.parseInt(args[0]) + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < days; i++) {
|
|
||||||
System.out.println("-------- day " + i + " --------");
|
|
||||||
System.out.println("name, sellIn, quality");
|
|
||||||
for (Item item : items) {
|
|
||||||
System.out.println(item);
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
app.updateQuality();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
import io.cucumber.junit.Cucumber;
|
|
||||||
import io.cucumber.junit.CucumberOptions;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
@RunWith(Cucumber.class)
|
|
||||||
@CucumberOptions()
|
|
||||||
public class RunCucumberTest {
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
package com.gildedrose;
|
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
|
||||||
|
|
||||||
import io.cucumber.java.en.Given;
|
|
||||||
import io.cucumber.java.en.Then;
|
|
||||||
import io.cucumber.java.en.When;
|
|
||||||
|
|
||||||
public class StepDefinitions {
|
|
||||||
private Item[] items = new Item[1];
|
|
||||||
private GildedRose app;
|
|
||||||
|
|
||||||
@Given("The item as {string}")
|
|
||||||
public void initial_sellin_is_and_quality_is(String name) {
|
|
||||||
items[0] = new Item(name, 0, 0);
|
|
||||||
app = new GildedRose(items);
|
|
||||||
}
|
|
||||||
|
|
||||||
@When("I update the quality")
|
|
||||||
public void i_update_the_quality() {
|
|
||||||
app.updateQuality();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Then("I should get item as {string}")
|
|
||||||
public void i_should_get_sellin_as_and_quality_as(String expected) {
|
|
||||||
assertEquals(expected, app.items[0].name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
Feature: Gilded Rose quality
|
|
||||||
I want to know if the quality is updated properly
|
|
||||||
|
|
||||||
Scenario: Checking foo
|
|
||||||
Given The item as "fixme"
|
|
||||||
When I update the quality
|
|
||||||
Then I should get item as "foo"
|
|
||||||
@ -1 +0,0 @@
|
|||||||
cucumber.publish.quiet=true
|
|
||||||
3
Java-Spock/.gitignore
vendored
3
Java-Spock/.gitignore
vendored
@ -1,3 +0,0 @@
|
|||||||
.idea/
|
|
||||||
.gradle/
|
|
||||||
build/
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
apply plugin: "groovy"
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceCompatibility = '1.8'
|
|
||||||
targetCompatibility = '1.8'
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation 'org.codehaus.groovy:groovy:3.0.8'
|
|
||||||
testImplementation platform('org.spockframework:spock-bom:2.0-groovy-3.0')
|
|
||||||
testImplementation 'org.spockframework:spock-core'
|
|
||||||
}
|
|
||||||
|
|
||||||
test {
|
|
||||||
useJUnitPlatform()
|
|
||||||
testLogging {
|
|
||||||
events "passed", "skipped", "failed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user