Skip to content

Commit

Permalink
All tests are done and passing.
Browse files Browse the repository at this point in the history
  • Loading branch information
galvao committed Jan 26, 2025
1 parent 2fbd86c commit bc66f6d
Show file tree
Hide file tree
Showing 11 changed files with 349 additions and 27 deletions.
2 changes: 1 addition & 1 deletion .phpunit.result.cache
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":1,"defects":{"GalvaoEti\\CollectionTest\\InvalidTypeForConstructTest::testConstructInvalidType":8},"times":{"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#0":0.001,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#1":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#2":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#3":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#4":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#5":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#6":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#7":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#8":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#9":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#10":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#11":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#12":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#13":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#14":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#15":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#16":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#17":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#18":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#19":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#0":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#1":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#2":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#3":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#4":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#5":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#6":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#7":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#8":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#9":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#10":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#11":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#12":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#13":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#14":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#15":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#16":0,"GalvaoEti\\CollectionTest\\InvalidTypeForConstructTest::testConstructInvalidType":0}}
{"version":1,"defects":{"GalvaoEti\\CollectionTest\\InvalidTypeForConstructTest::testConstructInvalidType":8,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testValidCollection#0":7,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testValidCollection#1":7,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testValidCollection#2":7,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteCollectionItem#0":7,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteCollectionItem#1":7,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteCollectionItem#2":7,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteMiddleItem":8,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteMiddleItem#0":8,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteMiddleItem#1":8,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteMiddleItem#2":8,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteLastItem#0":8,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteLastItem#1":8,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteLastItem#2":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#0":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#1":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#2":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#3":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#4":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#5":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#6":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#7":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#8":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#9":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#10":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#11":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#12":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#13":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#14":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#15":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#16":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#17":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#18":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#19":8,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#0":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#1":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#2":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#3":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#4":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#5":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#6":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#7":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#8":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#9":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#10":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#11":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#12":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#13":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#14":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#15":7,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#16":7,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedAdding#0":8,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedAdding#1":8,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedAdding#2":8,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateString#0":8,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateString#1":8,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateString#2":8,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateWithWrongType#0":7,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateWithWrongType#1":7,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateWithWrongType#2":7,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableUpdate#0":7,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableUpdate#1":7,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableUpdate#2":7},"times":{"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#0":0.001,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#1":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#2":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#3":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#4":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#5":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#6":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#7":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#8":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#9":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#10":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#11":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#12":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#13":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#14":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#15":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#16":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#17":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#18":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testValidCollection#19":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#0":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#1":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#2":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#3":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#4":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#5":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#6":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#7":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#8":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#9":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#10":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#11":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#12":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#13":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#14":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#15":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidInvalidCollection#16":0,"GalvaoEti\\CollectionTest\\InvalidTypeForConstructTest::testConstructInvalidType":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testValidCollection#0":0.003,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testValidCollection#1":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testValidCollection#2":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteCollectionItem#0":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteCollectionItem#1":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteCollectionItem#2":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteLastItem#0":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteLastItem#1":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteLastItem#2":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteMiddleItem":0.008,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteMiddleItem#0":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteMiddleItem#1":0,"GalvaoEti\\CollectionTest\\CollectionDeletingTest::testDeleteMiddleItem#2":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testDeleteLastItem#0":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testDeleteLastItem#1":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testDeleteLastItem#2":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateString#0":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateString#1":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateString#2":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateWithWrongType#0":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateWithWrongType#1":0,"GalvaoEti\\CollectionTest\\CollectionUpdatingTest::testUpdateWithWrongType#2":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedAdding#0":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedAdding#1":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedAdding#2":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedUpdating#0":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedUpdating#1":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedUpdating#2":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedDeleting#0":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedDeleting#1":0,"GalvaoEti\\CollectionTest\\CollectionLockingTest::testLockedDeleting#2":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#0":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#1":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#2":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#3":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#4":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#5":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#6":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#7":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#8":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#9":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#10":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#11":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#12":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#13":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#14":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#15":0,"GalvaoEti\\CollectionTest\\CollectionAddingTest::testInvalidCollection#16":0,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableUpdate#0":0,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableUpdate#1":0,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableUpdate#2":0,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableAdding#0":0,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableAdding#1":0,"GalvaoEti\\CollectionTest\\CollectionNotOverwritingTest::testNonOverwritableAdding#2":0}}
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ A versatile, fully-featured Linear [Collection](https://en.wikipedia.org/wiki/Co
## Installation

```bash
composer require galvao-eti/collection:0.3.0-alpha
composer require galvao-eti/collection
```

## Features
Expand All @@ -21,11 +21,11 @@ Strongly Typed Collections:
- [x] Array
- [x] Object
- [x] Objects of a specific class
- [ ] Customizable overwriting prevention
- [ ] Locking the collection (no more writing to it)
- [ ] Deletion
- [ ] Automatically rearranging the collection's keys upon deletion
- [ ] Update items
- [x] Overwriting prevention when adding data with existing key or updating
- [x] Locking the collection (no more writing to it)
- [x] Deletion
- [x] Automatically rearranging the collection's keys upon deletion
- [x] Update items

## Usage

Expand Down
5 changes: 5 additions & 0 deletions bin/useCollection.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
echo $e->getMessage();
}

var_dump($c->get(null));

try {
$c->delete(1, true);
} catch (Throwable $e) {
Expand All @@ -31,3 +33,6 @@
foreach ($c->generateData() as $item) {
echo $item . PHP_EOL;
}

var_dump($c->get(null));
echo $c->key();
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "galvao-eti/collection",
"type": "library",
"license": "Apache-2.0",
"description": "A versatile, fully-featured Collection implementation.",
"description": "A versatile, fully-featured Linear Collection implementation.",
"autoload": {
"psr-4": {
"GalvaoEti\\Collection\\": "src/"
Expand Down
1 change: 1 addition & 0 deletions src/Abstraction/CollectionInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
interface CollectionInterface extends \Iterator
{
public function __construct(string $dataType = 'mixed', ?string $dataClass = null);
public function validateTypes(mixed $data): bool;
public function add(mixed $data, bool $lazy = true): void;
public function get(?int $key): mixed;
public function update(int $key, mixed $data, bool $silentOnNotFound = true): void;
Expand Down
Loading

0 comments on commit bc66f6d

Please sign in to comment.