Skip to content

Commit

Permalink
Merge pull request #160 from sebastianconcept/150-Improve-unit-test-c…
Browse files Browse the repository at this point in the history
…overage-for-Mapless-Mongo-Core

150 improve unit test coverage for mapless mongo core
  • Loading branch information
sebastianconcept committed Mar 4, 2024
2 parents 1c49597 + 4367848 commit 2815872
Show file tree
Hide file tree
Showing 128 changed files with 2,092 additions and 1,132 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
smalltalk: [Pharo64-10]
smalltalk: [Pharo64-11]
redis-version: [7]
mongodb-version: ['4.4']
mongodb-version: ['7.0']
name: ${{ matrix.smalltalk }}
services:
postgres:
Expand Down
23 changes: 13 additions & 10 deletions .smalltalkci/.unit-tests.ston
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,25 @@ SmalltalkCISpec {
SCIMetacelloLoadSpec {
#baseline : 'Mapless',
#directory : '../src',
#load : [ 'Core',
'Memory',
'SQLite',
'Postgres',
'Mongo',
'Redis' ],
#load : [
'Core',
'Tests',
'Memory-Tests',
'SQLite-Tests',
'Postgres-Tests',
'Mongo-Tests',
'Redis-Tests',
'Redis-Observer-Tests' ],
#platforms : [ #pharo ]
}
],
#testing : {
#coverage : {
#packages : [
'Mapless-Base-Core',
'Mapless-Memory-Core',
'Mapless-Postgres-Core',
'Mapless-Mongo-Core',
'Mapless-Base',
'Mapless-Memory',
'Mapless-Postgres',
'Mapless-Mongo',
'Mapless-SQLite',
'Mapless-Redis',
'Mapless-Redis-Observer'
Expand Down
3 changes: 3 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ignore:
- "**/Manifest*.st"
- "**/*ReplicaSet*.st"
126 changes: 73 additions & 53 deletions src/BaselineOfMapless/BaselineOfMapless.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,43 @@ Class {
#category : #BaselineOfMapless
}

{ #category : #baseline }
{ #category : #baselines }
BaselineOfMapless >> baseline: spec [

<baseline>
spec
for: #common
do: [ self setUpBaseDependencies: spec.
self setUpPackages: spec.
spec
group: 'Core' with: #('Mapless-Base-Core');
group: 'Memory' with: #('Mapless-Memory-Tests');
group: 'Mongo' with: #('Mapless-Mongo-Tests');
group: 'Redis' with: #('Mapless-Redis-Tests');
group: 'Postgres' with: #('Mapless-Postgres-Tests');
group: 'SQLite' with: #('Mapless-SQLite-Tests');
group: 'UnQLite' with: #('Mapless-UnQLite-Tests');
group: 'Benchmark' with: #('Mapless-Benchmark-Core');
group: 'default' with: #('Memory' 'SQLite') ]
spec for: #common do: [
self setUpBaseDependencies: spec.
self setUpPackages: spec.
spec
group: 'Core' with: #( 'Mapless-Base' );
group: 'Tests' with: #( 'Mapless-Base' 'Mapless-Tests' );
group: 'Memory' with: #( 'Mapless-Memory' );
group: 'Memory-Tests'
with: #( 'Mapless-Memory' 'Mapless-Memory-Tests' );
group: 'Mongo' with: #( 'Mapless-Mongo' );
group: 'Mongo-Tests'
with: #( 'Mapless-Mongo' 'Mapless-Mongo-Tests' );
group: 'Mongo-ReplicaSet-Tests'
with: #( 'Mapless-Mongo-ReplicaSet-Tests' );
group: 'Redis' with: #( 'Mapless-Redis' );
group: 'Redis-Tests'
with: #( 'Mapless-Redis' 'Mapless-Redis-Tests' );
group: 'Redis-Observer-Tests'
with: #( 'Mapless-Redis-Observer' 'Mapless-Redis-Observer-Tests' );
group: 'Postgres' with: #( 'Mapless-Postgres' );
group: 'Postgres-Tests'
with: #( 'Mapless-Postgres' 'Mapless-Postgres-Tests' );
group: 'SQLite' with: #( 'Mapless-SQLite' );
group: 'SQLite-Tests'
with: #( 'Mapless-SQLite' 'Mapless-SQLite-Tests' );
group: 'UnQLite' with: #( 'Mapless-UnQLite' );
group: 'UnQLite-Tests'
with: #( 'Mapless-UnQLite' 'Mapless-UnQLite-Tests' );
group: 'Benchmark' with: #( 'Mapless-Benchmark-Core' );
group: 'default' with: #( 'Memory' 'SQLite' ) ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpBaseDependencies: spec [
spec
baseline: 'JSON'
Expand All @@ -51,24 +68,24 @@ BaselineOfMapless >> setUpBaseDependencies: spec [
with: [ spec repository: 'github://svenvc/NeoJSON:v18/repository' ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpBasePackages: spec [
spec
package: 'Mapless-Base-Core'
package: 'Mapless-Base'
with: [ spec requires: 'JSON' ].
spec
package: 'Mapless-Tests-Base'
with: [ spec requires: 'Mapless-Base-Core' ].
package: 'Mapless-Tests'
with: [ spec requires: 'Mapless-Base' ].
spec
package: 'Mapless-Memory-Core'
with: [ spec requires: #('Mapless-Base-Core') ].
package: 'Mapless-Memory'
with: [ spec requires: #('Mapless-Base') ].
spec
package: 'Mapless-Memory-Tests'
with: [ spec requires: #('Mapless-Memory-Core') ].
with: [ spec requires: #('Mapless-Memory') ].

]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpMongoDependencies: spec [

spec baseline: 'MongoTalk' with: [
Expand All @@ -77,14 +94,17 @@ BaselineOfMapless >> setUpMongoDependencies: spec [
loads: #( Client 'Mongo-DriverLegacy' ) ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpMongoPackages: spec [
spec
package: 'Mapless-Mongo-Core'
with: [ spec requires: #('Mapless-Base-Core' 'MongoTalk') ].
package: 'Mapless-Mongo'
with: [ spec requires: #('Mapless-Base' 'MongoTalk') ].
spec
package: 'Mapless-Mongo-Tests'
with: [ spec requires: #('Mapless-Mongo-Core' 'Mapless-Tests-Base') ].
with: [ spec requires: #('Mapless-Mongo' 'Mapless-Tests') ].
spec
package: 'Mapless-Mongo-ReplicaSet-Tests'
with: [ spec requires: #('Mapless-Mongo-Tests') ].
spec
package: 'Mapless-Mongo-Log'
with: [ spec requires: #('Mapless-Mongo-Tests' 'NeoJSON') ].
Expand All @@ -93,7 +113,7 @@ BaselineOfMapless >> setUpMongoPackages: spec [
with: [ spec requires: 'Mapless-Mongo-Tests' ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpPackages: spec [
self setUpBaseDependencies: spec.
self setUpBasePackages: spec.
Expand All @@ -114,22 +134,22 @@ BaselineOfMapless >> setUpPackages: spec [
self setUpUnQLitePackages: spec
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpPostgresDependencies: spec [
spec baseline: 'P3' with: [ spec repository: 'github://svenvc/P3:v1.4' ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpPostgresPackages: spec [
spec
package: 'Mapless-Postgres-Core'
with: [ spec requires: #('Mapless-Base-Core' 'P3') ].
package: 'Mapless-Postgres'
with: [ spec requires: #('Mapless-Base' 'P3') ].
spec
package: 'Mapless-Postgres-Tests'
with: [ spec requires: #('Mapless-Postgres-Core' 'Mapless-Tests-Base') ]
with: [ spec requires: #('Mapless-Postgres' 'Mapless-Tests') ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpRedisDependencies: spec [
spec
baseline: 'RediStick'
Expand All @@ -138,27 +158,27 @@ BaselineOfMapless >> setUpRedisDependencies: spec [
loads: #('Core' 'ConnectionPool') ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpRedisPackages: spec [

spec
package: 'Mapless-Redis'
with: [ spec requires: #( 'Mapless-Base-Core' 'RediStick' ) ].
with: [ spec requires: #( 'Mapless-Base' 'RediStick' ) ].

spec
package: 'Mapless-Redis-Observer'
with: [ spec requires: #( 'Mapless-Base-Core' ) ].
with: [ spec requires: #( 'Mapless-Redis' ) ].

spec package: 'Mapless-Redis-Observer-Tests' with: [
spec package: 'Mapless-Redis-Observer-Tests' with: [
spec requires: #( 'Mapless-Redis-Observer' 'Mapless-Redis-Tests'
'Mapless-Tests-Base' ) ].
'Mapless-Tests' ) ].

spec
package: 'Mapless-Redis-Tests'
with: [ spec requires: #( 'Mapless-Redis' 'Mapless-Tests-Base' ) ].
with: [ spec requires: #( 'Mapless-Redis' 'Mapless-Tests' ) ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpSQLiteDependencies: spec [
spec
baseline: 'SQLite3'
Expand All @@ -167,31 +187,31 @@ BaselineOfMapless >> setUpSQLiteDependencies: spec [
loads: #('Core') ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpSQLitePackages: spec [
spec
package: 'Mapless-SQLite-Core'
with: [ spec requires: #('Mapless-Base-Core' 'SQLite3') ].
package: 'Mapless-SQLite'
with: [ spec requires: #('Mapless-Base' 'SQLite3') ].
spec
package: 'Mapless-SQLite-Tests'
with: [ spec requires: #('Mapless-SQLite-Core' 'Mapless-Tests-Base') ]
with: [ spec requires: #('Mapless-SQLite' 'Mapless-Tests') ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpUnQLiteDependencies: spec [
spec
baseline: 'PunQLite'
with: [ spec
repository: 'github://mumez/PunQLite:aab064c2e003ef18fcdf8dad2a139fa4b36b6ed6/repository';
repository: 'github://mumez/PunQLite:v2.0.1/repository';
loads: #('Core') ]
]

{ #category : #baseline }
{ #category : #dependencies }
BaselineOfMapless >> setUpUnQLitePackages: spec [
spec
package: 'Mapless-UnQLite-Core'
with: [ spec requires: #('Mapless-Base-Core' 'PunQLite') ].
package: 'Mapless-UnQLite'
with: [ spec requires: #('Mapless-Base' 'PunQLite') ].
spec
package: 'Mapless-UnQLite-Tests'
with: [ spec requires: #('Mapless-UnQLite-Core' 'Mapless-Tests-Base') ]
with: [ spec requires: #('Mapless-UnQLite' 'Mapless-Tests') ]
]
5 changes: 0 additions & 5 deletions src/Mapless-Base-Core/MaplessClassNotFound.class.st

This file was deleted.

5 changes: 0 additions & 5 deletions src/Mapless-Base-Core/MaplessTrivialResolver.class.st

This file was deleted.

1 change: 0 additions & 1 deletion src/Mapless-Base-Core/package.st

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Extension { #name : #Dictionary }

{ #category : #'*Mapless-Base-Core' }
{ #category : #'*Mapless-Base' }
Dictionary >> asJsonObjectIn: aMaplessRepository [
"Answers a JSON object based on the contents of this dictionary."

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Extension { #name : #JsonObject }

{ #category : #'*Mapless-Base-Core' }
{ #category : #'*Mapless-Base' }
JsonObject >> asJsonObjectIn: aMaplessRepository [
^ self
]
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
I store metadata for this package. These meta data are used by other tools such as the SmalllintManifestChecker and the critics Browser
"
Class {
#name : #ManifestMaplessBaseCore,
#name : #ManifestMaplessBase,
#superclass : #PackageManifest,
#category : #'Mapless-Base-Core-Manifest'
#category : #'Mapless-Base-Manifest'
}

{ #category : #'code-critics' }
ManifestMaplessBaseCore class >> ruleRBSentNotImplementedRuleV1FalsePositive [
ManifestMaplessBase class >> ruleRBSentNotImplementedRuleV1FalsePositive [
^ #(#(#(#RGPackageDefinition #(#'Mapless-Base-Core')) #'2021-09-18T15:55:40.299821-03:00') #(#(#RGClassDefinition #(#MaplessReference)) #'2022-03-13T14:06:38.150255-03:00') )
]
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Class {
#instVars : [
'data'
],
#category : #'Mapless-Base-Core-Models'
#category : #'Mapless-Base-Models'
}

{ #category : #accessing }
Expand Down Expand Up @@ -196,7 +196,7 @@ Mapless class >> isAbstract [
^ self == AnAbstractModelClass"

^ false
^ self == Mapless
]

{ #category : #testing }
Expand Down Expand Up @@ -244,7 +244,7 @@ Mapless class >> pluralName [
Any subclass can override its own custom name.
The default plural name is the singular name
in lower case plus an 's' so beware of irregular nouns."

self deprecated: 'Application responsibility'.
^ self singularName , 's'
]

Expand All @@ -253,7 +253,7 @@ Mapless class >> singularName [
"Answers the string expected in a nicely designed API.
Any subclass can override its own custom name.
The default name is the class name in lowercase."

self deprecated: 'Application responsibility'.
^ self name asLowercase
]

Expand Down Expand Up @@ -665,10 +665,11 @@ Mapless >> onBeforeUpsert [
]

{ #category : #actions }
Mapless >> sanitize: someFields [
"Removes someFields from the receiver."
Mapless >> sanitize: someProperties [
"Removes someProperties from the receiver."

someFields do: [ :key | self data removeKey: key ifAbsent: [ nil ] ]
someProperties do: [ :key |
self maplessData removeKey: key ifAbsent: [ nil ] ]
]

{ #category : #actions }
Expand Down
Loading

0 comments on commit 2815872

Please sign in to comment.