-
Notifications
You must be signed in to change notification settings - Fork 196
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Closes #628 ## Checklist - [x] Title matches [Winglang's style guide](https://www.winglang.io/contributing/start-here/pull_requests#how-are-pull-request-titles-formatted) - [x] Description explains motivation and solution - [x] Tests added (always) - [ ] Docs updated (only required for features) - [ ] Added `pr/e2e-full` label if this feature requires end-to-end testing *By submitting this pull request, I confirm that my contribution is made under the terms of the [Wing Cloud Contribution License](https://github.com/winglang/wing/blob/main/CONTRIBUTION_LICENSE.md)*.
- Loading branch information
1 parent
ee58533
commit 7c4c355
Showing
25 changed files
with
724 additions
and
118 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,48 @@ | ||
bring cloud; | ||
bring expect; | ||
|
||
let counter = new cloud.Counter(initial: 1); | ||
// implicit initial (0) | ||
let counter1 = new cloud.Counter() as "counter1"; | ||
// explicit initial | ||
let counter2 = new cloud.Counter(initial: -1) as "counter2"; | ||
|
||
test "dec" { | ||
assert(counter.peek() == 1); | ||
let dec1 = counter.dec(); | ||
assert(counter.peek() == 0); | ||
assert(dec1 == 1); | ||
let dec2 = counter.dec(2); | ||
assert(counter.peek() == -2); | ||
assert(dec2 == 0); | ||
test "dec()" { | ||
// implicit decrement (-1) | ||
let r0 = counter1.dec(); | ||
expect.equal(r0, 0); | ||
expect.equal(counter1.peek(), -1); | ||
|
||
// explicit decrement (positive int) | ||
let r1 = counter1.dec(5); | ||
expect.equal(r1, -1); | ||
expect.equal(counter1.peek(), -6); | ||
|
||
// explicit decrement (negative int) | ||
let r2 = counter1.dec(-4); | ||
expect.equal(r2, -6); | ||
expect.equal(counter1.peek(), -2); | ||
|
||
// explicit decrement (-0) | ||
let r3 = counter1.dec(0); | ||
expect.equal(r3, -2); | ||
expect.equal(counter1.peek(), -2); | ||
} | ||
|
||
test "key dec" { | ||
let key = "my-key"; | ||
assert(counter.peek(key) == 1); | ||
let dec1 = counter.dec(nil, key); | ||
assert(counter.peek(key) == 0); | ||
assert(dec1 == 1); | ||
let dec2 = counter.dec(2, key); | ||
assert(counter.peek(key) == -2); | ||
assert(dec2 == 0); | ||
test "dec() with custom key" { | ||
let key = "custom-key"; | ||
|
||
// explicit decrement (positive int) | ||
let r1 = counter2.dec(5, key); | ||
expect.equal(r1, -1); | ||
expect.equal(counter2.peek(key), -6); | ||
|
||
// explicit decrement (negative int) | ||
let r2 = counter2.dec(-4, key); | ||
expect.equal(r2, -6); | ||
expect.equal(counter2.peek(key), -2); | ||
|
||
// explicit decrement (-0) | ||
let r3 = counter2.dec(0, key); | ||
expect.equal(r3, -2); | ||
expect.equal(counter2.peek(key), -2); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,48 @@ | ||
bring cloud; | ||
bring expect; | ||
|
||
let counter = new cloud.Counter(initial: 0); | ||
|
||
test "inc" { | ||
assert(counter.peek() == 0); | ||
let r0 = counter.inc(); | ||
assert(r0 == 0); | ||
assert(counter.peek() == 1); | ||
let r1 = counter.inc(); | ||
assert(r1 == 1); | ||
assert(counter.peek() == 2); | ||
let r2 = counter.inc(10); | ||
assert(r2 == 2); | ||
assert(counter.peek() == 12); | ||
let r3 = counter.inc(); | ||
assert(r3 == 12); | ||
// implicit initial (0) | ||
let counter1 = new cloud.Counter() as "counter1"; | ||
// explicit initial | ||
let counter2 = new cloud.Counter(initial: -1) as "counter2"; | ||
|
||
test "inc()" { | ||
// implicit increment (+1) | ||
let r0 = counter1.inc(); | ||
expect.equal(r0, 0); | ||
expect.equal(counter1.peek(), 1); | ||
|
||
// explicit increment (positive int) | ||
let r1 = counter1.inc(5); | ||
expect.equal(r1, 1); | ||
expect.equal(counter1.peek(), 6); | ||
|
||
// explicit increment (negative int) | ||
let r2 = counter1.inc(-4); | ||
expect.equal(r2, 6); | ||
expect.equal(counter1.peek(), 2); | ||
|
||
// explicit increment (+0) | ||
let r3 = counter1.inc(0); | ||
expect.equal(r3, 2); | ||
expect.equal(counter1.peek(), 2); | ||
} | ||
|
||
test "key inc" { | ||
let key = "my-key"; | ||
assert(counter.peek(key) == 0); | ||
let r0 = counter.inc(nil, key); | ||
assert(r0 == 0); | ||
assert(counter.peek(key) == 1); | ||
let r1 = counter.inc(nil, key); | ||
assert(r1 == 1); | ||
assert(counter.peek(key) == 2); | ||
let r2 = counter.inc(10, key); | ||
assert(r2 == 2); | ||
assert(counter.peek(key) == 12); | ||
let r3 = counter.inc(nil, key); | ||
assert(r3 == 12); | ||
test "inc() with custom key" { | ||
let key = "custom-key"; | ||
|
||
// explicit increment (positive int) | ||
let r1 = counter2.inc(5, key); | ||
expect.equal(r1, -1); | ||
expect.equal(counter2.peek(key), 4); | ||
|
||
// explicit increment (negative int) | ||
let r2 = counter2.inc(-4, key); | ||
expect.equal(r2, 4); | ||
expect.equal(counter2.peek(key), 0); | ||
|
||
// explicit increment (+0) | ||
let r3 = counter2.inc(0, key); | ||
expect.equal(r3, 0); | ||
expect.equal(counter2.peek(key), 0); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,18 @@ | ||
bring cloud; | ||
bring expect; | ||
|
||
let counterA = new cloud.Counter() as "counterA"; | ||
let counterB = new cloud.Counter(initial: 500) as "counterB"; | ||
let counterC = new cloud.Counter(initial: -198) as "counterC"; | ||
|
||
test "initial:default" { | ||
assert(counterA.peek() == 0); | ||
expect.equal(counterA.peek(), 0); | ||
} | ||
|
||
test "initial:positive-value" { | ||
assert(counterB.peek() == 500); | ||
expect.equal(counterB.peek(), 500); | ||
} | ||
|
||
test "initial:negative-value" { | ||
assert(counterC.peek() == -198); | ||
expect.equal(counterC.peek(), -198); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,19 @@ | ||
bring cloud; | ||
bring expect; | ||
|
||
let c = new cloud.Counter(); | ||
|
||
test "peek" { | ||
assert(c.peek() == 0); | ||
assert(c.peek() == 0); | ||
expect.equal(c.peek(), 0); | ||
expect.equal(c.peek(), 0); | ||
c.inc(); | ||
assert(c.peek() == 1); | ||
expect.equal(c.peek(), 1); | ||
} | ||
|
||
test "key peek" { | ||
let key = "my-key"; | ||
assert(c.peek(key) == 0); | ||
assert(c.peek(key) == 0); | ||
expect.equal(c.peek(key), 0); | ||
expect.equal(c.peek(key), 0); | ||
c.inc(nil, key); | ||
assert(c.peek(key) == 1); | ||
expect.equal(c.peek(key), 1); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,37 @@ | ||
bring cloud; | ||
bring expect; | ||
|
||
let counter = new cloud.Counter(initial: 0); | ||
|
||
test "set" { | ||
assert(counter.peek() == 0); | ||
counter.inc(); | ||
assert(counter.peek() == 1); | ||
counter.inc(); | ||
assert(counter.peek() == 2); | ||
counter.inc(10); | ||
assert(counter.peek() == 12); | ||
counter.set(88); | ||
assert(counter.peek() == 88); | ||
// implicit initial (0) | ||
let counter1 = new cloud.Counter() as "counter1"; | ||
// explicit initial | ||
let counter2 = new cloud.Counter(initial: -1) as "counter2"; | ||
|
||
test "set()" { | ||
// set (positive int) | ||
counter1.set(42); | ||
expect.equal(counter1.peek(), 42); | ||
|
||
// set (negative int) | ||
counter1.set(-100); | ||
expect.equal(counter1.peek(), -100); | ||
|
||
// set (0) | ||
counter1.set(0); | ||
expect.equal(counter1.peek(), 0); | ||
} | ||
|
||
test "key set" { | ||
let key = "my-key"; | ||
assert(counter.peek(key) == 0); | ||
counter.inc(nil, key); | ||
assert(counter.peek(key) == 1); | ||
counter.inc(nil, key); | ||
assert(counter.peek(key) == 2); | ||
counter.inc(10, key); | ||
assert(counter.peek(key) == 12); | ||
counter.set(88, key); | ||
assert(counter.peek(key) == 88); | ||
} | ||
test "set() with custom key" { | ||
let key = "custom-key"; | ||
|
||
// set (positive int) | ||
counter2.set(42, key); | ||
expect.equal(counter2.peek(key), 42); | ||
|
||
// set (negative int) | ||
counter2.set(-100, key); | ||
expect.equal(counter2.peek(key), -100); | ||
|
||
// set (0) | ||
counter2.set(0, key); | ||
expect.equal(counter2.peek(key), 0); | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -88,7 +88,9 @@ const project = new cdk.JsiiProject({ | |
"@azure/core-paging", | ||
// gcp client dependencies | ||
"@google-cloud/[email protected]", | ||
"@google-cloud/[email protected]", | ||
"google-auth-library", | ||
"[email protected]", | ||
// simulator dependencies | ||
"express", | ||
"uuid", | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.