Comments (4)
I'm currently working on this one, but I'm not sure what are the semantics of the API proposed:
.valueForKey("key2").doesNotExist()
What does it mean that a value doesn't exist for a given key? That it's set to null? Or that the key does not exist in the map?
Perhaps .valueForKey("key2").isNull()
would be more explicit?
from assertj.
My thoughts:
- some Map can have a null value for a given key, thus we should have both
doesNotExist
andisNull
. - if given key does not exist we should throw an
AssertionError
since we expect it to exist.
from assertj.
It would be best if valueForKey method could return a subclass of AbstractAssert in context of the actual value for key. The tough part though is making assertion methods of this subclass return earlier MapAssert instead of itself.
From what I see in the code this is currently not possible without same major changes in AbstractAssert. Do you recall having such problem solved somewhere in the code base already?
An alternative is not to subclass AbstractAssert for value assertions, but provide a couple of basic assertions on their own, like isEqualTo, isNotEqualTo, isNull, and make them return MapAssert. This would not be as powerful, but would be least invasive.
from assertj.
Closing this because of #690 and #691.
from assertj.
Related Issues (20)
- Streamline published POMs to avoid CVE alerts from test dependencies HOT 1
- Compile error due to new assertThatThrownBy HOT 12
- AssertJ cannot compare arrays in maps HOT 4
- Regression in `AbstractMapAssert.containsExactly` causes `NullPointerException` HOT 4
- Recursive comparison uses `equals` on root object when `useOverriddenEquals` is enabled HOT 13
- Improve interoperability of `asInstanceOf` with `Set` instances HOT 1
- Unresolvable stylesheet URLs in latest Javadoc HOT 1
- Recursive comparison depends on the sequence of objects. HOT 4
- assertThat(collection).doesNotHaveDuplicates() is not sorted, even if the collection is HOT 12
- Recursive comparison checks for existence of fields in types that parameterize nested unordered iterables HOT 1
- `satisfiesExactlyInAnyOrder` fails if `actual` overrides `equals` HOT 4
- `isNotEqualTo(boolean)` fails if `actual` is null HOT 2
- Suggesting "hasOnlyDuplicates()" assertion HOT 3
- Field existence check for the elements of a collection field HOT 1
- Checking compared fields existence: handle containers
- ...usingRecursiveComparison().ignoringTransientFields()... HOT 7
- Unable to compare some timestamp types HOT 2
- Add AbstractAssert#matchesWith HOT 1
- AssertFactory with the ability to convert the value upfront HOT 24
- Add default recursive comparison configuration for non accessible classes and fields HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from assertj.