Skip to content

Commit d1c1ef7

Browse files
committed
New methods: GetRelease, GetLatestTag, CheckForUpdate; new property: regEx
1 parent a0c32d2 commit d1c1ef7

13 files changed

+260
-49
lines changed

APLSource/GitHubAPIv3.aplc

Lines changed: 180 additions & 44 deletions
Large diffs are not rendered by default.

APLSource/TestCases/Test_002.aplf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
R←Test_002(stopFlag batchFlag);⎕TRAP;data;more;rc
2-
⍝ Get information regarding the latest release with the dedicated method `GetLatestRelease`
2+
⍝ Get information regarding the latest release with the dedicated method `GetLatestReleaseInfo`
33
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
44
R←∆Failed
5-
(rc more data)←∆MyGitHubAPI.GetLatestRelease'TestRepo'
5+
(rc more data)←∆MyGitHubAPI.GetLatestReleaseInfo'TestRepo'
66
→PassesIf 0=rc
77
→PassesIf 0=≢more
88
→PassesIf'aplteam'≡data.author.login

APLSource/TestCases/Test_006.aplf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222
→PassesIf 102003.09999=##.GitHubAPIv3.CastTagname2Number'v1.2.3.9999'
2323
→PassesIf 102003.09999=##.GitHubAPIv3.CastTagname2Number'abc1.2.3.9999'
2424

25+
→PassesIf 100000=##.GitHubAPIv3.CastTagname2Number'v1.0'
26+
→PassesIf 100000=##.GitHubAPIv3.CastTagname2Number'v1'
27+
2528
→PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'va2b3n4n5'
26-
→PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'99.1'
2729
→PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'99.1.2.3.4'
2830
→PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'v...'
2931
→PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'100.2.3'

APLSource/TestCases/Test_009.aplf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
44
R←∆Failed
55

6-
(rc more data)←∆MyGitHubAPI.GetReleaseByTagName'TestRepo' 'v1.0.0'
6+
(rc more data)←∆MyGitHubAPI.GetReleaseInfoByTagName'TestRepo' 'v1.0.0'
77
→PassesIf 0=rc
88
→PassesIf 0=≢more
99
→PassesIf data.tag_name≡'v1.0.0'

APLSource/TestCases/Test_019.aplf

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
R←Test_019(stopFlag batchFlag);⎕TRAP;tag
2+
⍝ Exercise the `GetLatestTag` method.
3+
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
4+
R←∆Failed
5+
6+
tag←∆MyGitHubAPI.GetLatestTag'TestRepo'
7+
→PassesIf 0<≢tag
8+
→PassesIf'v'=1⍴tag
9+
10+
R←∆OK
11+
⍝Done

APLSource/TestCases/Test_021.aplf

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
R←Test_021(stopFlag batchFlag);⎕TRAP
2+
⍝ Exercise the `CheckForUpdate` method.
3+
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
4+
R←∆Failed
5+
6+
→PassesIf 0=∆MyGitHubAPI.CheckForUpdate'TestRepo' '3.0.0'
7+
→PassesIf 0=∆MyGitHubAPI.CheckForUpdate'TestRepo' '2.0.0'
8+
→PassesIf 1=∆MyGitHubAPI.CheckForUpdate'TestRepo' '1.9.0' ⍝ The latest is 2.0.0
9+
10+
R←∆OK
11+
⍝Done
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
R←Test_GetRelease_001(stopFlag batchFlag);⎕TRAP;dmx;url
2+
⍝ Exercise the `GetRelease` method.
3+
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
4+
R←∆Failed
5+
6+
url←∆MyGitHubAPI.GetRelease'TestRepo' 'ZIP'
7+
→PassesIf'https://'{⍺≡(≢⍺)↑⍵}url
8+
→PassesIf∨/'/zipball/'⍷url
9+
10+
R←∆OK
11+
⍝Done
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
R←Test_GetRelease_002(stopFlag batchFlag);⎕TRAP;dmx;url
2+
⍝ Exercise the `GetRelease` method.
3+
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
4+
R←∆Failed
5+
6+
url←∆MyGitHubAPI.GetRelease'TestRepo' 'TAR'
7+
→PassesIf'https://'{⍺≡(≢⍺)↑⍵}url
8+
→PassesIf∨/'/tarball/'⍷url
9+
10+
R←∆OK
11+
⍝Done
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
R←Test_GetRelease_003(stopFlag batchFlag);⎕TRAP;dmx;url
2+
⍝ Exercise the `GetRelease` method.
3+
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
4+
R←∆Failed
5+
6+
url←∆MyGitHubAPI.GetRelease'APLTreeUtils' 'EXE' ⍝ Becauss this test project has no EXE!
7+
→PassesIf 0=≢url
8+
url←∆MyGitHubAPI.GetRelease'TestRepo' 'EXE' ⍝ This one has an EXE!
9+
→PassesIf'https://'{⍺≡(≢⍺)↑⍵}url
10+
url←'v1.0.1'∆MyGitHubAPI.GetRelease'TestRepo' 'EXE' ⍝ Specific release
11+
→PassesIf'https://'{⍺≡(≢⍺)↑⍵}url
12+
13+
R←∆OK
14+
⍝Done
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
R←Test_GetRelease_004(stopFlag batchFlag);⎕TRAP;dmx;url
2+
⍝ Exercise the `GetRelease` method.
3+
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
4+
R←∆Failed
5+
6+
:Trap 11
7+
{}∆MyGitHubAPI.GetRelease'TestRepo' 'Invalid'
8+
→FailsIf 1
9+
:Else
10+
dmx←⎕DMX
11+
→PassesIf'Invalid right argument ("type")'≡1⊃dmx.DM
12+
:EndTrap
13+
14+
R←∆OK
15+
⍝Done

0 commit comments

Comments
 (0)