Releases: ppi-ag/deep-sampler
Releases · ppi-ag/deep-sampler
v2.1.0
Highlights
- Some bugs have been fixed
- Module refactoring: JSON, as the standard persistence for the recorder, was tied closely to the JUnit-annotations. This was not only a theoretical design flaw (a violation of the separation-of-concern principle), it also prevented the usage of other persistence plugins together with annotation based configuration of JUnit-tests. To solve this, we introduced the new module
deepsampler-junit-json
. All json-specific annotations have been moved fromdeepsampler-junit
to this new module. (See new dependencies) - Custom annotations for loading and recording with custom persistence: The new meta annotations @UseSourceManagerForSaving and @UseSourceManagerForLoading can now be used to create custom annotations for loading and recording samples using custom persistence plugins. See Authoring custom persistence extensions
- BeanConverterExtension for Optional:
Optional
s can now be recorded without writing a customBeanConverterExtension
. See OptionalExtension - Charset configuration: The new annotation @UseCharset allows to define the charset, that is used during recording and loading of samples
Migration from older versions
New Module
Due to the module refactoring, a new additional dependency must be added:
<dependency>
<groupId>de.ppi</groupId>
<artifactId>deepsampler-junit-json</artifactId>
<version>2.1.0</version>
<scope>test</scope>
</dependency>
Package refactoring
Also, as a result of the module refactoring, some annotations have been moved to a new package:
de.ppi.deepsampler.junit.LoadSamples
has been moved tode.ppi.deepsampler.junit.json
de.ppi.deepsampler.junit.SaveSamples
has been moved tode.ppi.deepsampler.junit.json
de.ppi.deepsampler.junit.UseJsonDeserializer
has been moved tode.ppi.deepsampler.junit.json
de.ppi.deepsampler.junit.UseJsonDeserializers
has been moved tode.ppi.deepsampler.junit.json
de.ppi.deepsampler.junit.UseJsonSerializer
has been moved tode.ppi.deepsampler.junit.json
de.ppi.deepsampler.junit.UseJsonSerializers
has been moved tode.ppi.deepsampler.junit.json
Details
- Bug #107 json recorder is missing charset config by @JanSchankin in #108
- 🥯 #109 Introduction of a BeanConverterExtension for Optional by @JanSchankin in #110
- 🔨 CollectionExtension should be able to deal with missing generics by @JanSchankin in #112
- 🧪 #93 json is now separated and has it's own annotation-module by @JanSchankin in #113
- 🚢 #93 documentation for new module by @JanSchankin in #114
- Persistence matcher simplification by @JanSchankin in #116
- 🌠 Error message offers now a solution. by @JanSchankin in #117
- 🧽 Cleanup by @JanSchankin in #118
- 🔨 Introduction of central dependency management by @JanSchankin in #119
- 🔨 Additional, and hopefully better understandable combo() method by @JanSchankin in #138
- 🚀 switched to release 2.1.0 by @JanSchankin in #140
Update of dependencies
- Bump spring-aop from 5.2.8.RELEASE to 5.3.19 by @dependabot in #124
- Bump spring-test from 5.2.8.RELEASE to 5.3.19 by @dependabot in #120
- Bump junit from 4.13 to 4.13.2 by @dependabot in #121
- Bump com.vanniktech.maven.publish from 0.18.0 to 0.19.0 by @dependabot in #129
- Bump mockito-junit-jupiter from 4.3.1 to 4.5.1 by @dependabot in #127
- Bump jackson-databind from 2.11.0 to 2.13.2.2 by @dependabot in #126
- Bump guice from 4.0 to 5.1.0 by @dependabot in #125
- Bump spring-context from 5.2.8.RELEASE to 5.3.19 by @dependabot in #131
- Bump objenesis from 3.1 to 3.2 by @dependabot in #134
- Bump mockito-core from 4.3.1 to 4.5.0 by @dependabot in #133
- Bump jackson-datatype-jsr310 from 2.11.0 to 2.13.2 by @dependabot in #130
- Bump javassist from 3.27.0-GA to 3.28.0-GA by @dependabot in #132
- Bump jackson-module-parameter-names from 2.11.0 to 2.13.2 by @dependabot in #137
- Bump aspectjweaver from 1.9.6 to 1.9.9.1 by @dependabot in #136
- Bump assertj-core from 3.21.0 to 3.22.0 by @dependabot in #135
New Contributors
- @dependabot made their first contribution in #124
Full Changelog: v1.1.0...v2.1.0
v2.0.0
Highlights
- Various bugs have been fixed
- Class
Sample
has been split intoSample
andPersistentSample
. In the past, it was possible to mix the configuration of persistent and non-persistent samples, since the fluent-api made no distinction between those two. This often led to hard to solve errors. The new API has now a clear distinction. This also allowed us to add new sanity-checks, so that DeepSampler is now able to detect more errors and throw helpful Exceptions. It is still possible to use persistent and non persistent samples within the same test / SamplerFixture, only the API is now more distinct. See simple example for PersistentSample - JsonSerializer can now be configured using annotations. See Adding custom JsonSerializers and JsonDeserializers to persist data, that cannot be persisted by DeepSampler out of the box
- PersistentBeanExtentions can now be configured using annotations. The API of the extension is also improved. See Adding custom PersistentBeanExtensions to persist data, that cannot be persisted by DeepSampler out of the box)
- Filenames and root-paths can be configured using annotations. See Tweaking filenames and paths
- The generic persistence is much more powerful now. E.g:
- Maps with non-primitive values (non-primitive keys are yet to come, though)
- Collections and Lists with non-primitive values
- Polymorphic interfaces
- Generics are honored. ParameterizedTypes are now accessible from PersistentBeanExtensions.
What's Changed
- Bug order loading by @rcschrg in #59
- Fixes #56: by @rcschrg in #58
- Fixes #60, the bean factory is now able to deserialize/serialize obje… by @rcschrg in #64
- Retest for #60 by @JanSchankin in #65
- New Map extension by @JanSchankin in #67
- New Collection Extension by @JanSchankin in #66
- Feature strict mode by @JanSchankin in #77
- Feature api refactoring Issue #45 by @JanSchankin in #78
- byte[] should be readable in persistent files Issue #72 by @JanSchankin in #73
- Bug sampler fixture issue #61 by @JanSchankin in #79
- Bug verify by @JanSchankin in #80
- Docu with new graphics by @JanSchankin in #84
- Bug add extension not reachable by @JanSchankin in #81
- Polymorphic persistence Issue #70 by @JanSchankin in #83
- 🧽 Cleanup by @JanSchankin in #87
- 🧽 Cleanup by @JanSchankin in #88
- 🌠Feature configurable json path by @JanSchankin in #85
- 🏗️ Preparations for Release 2.0 by @JanSchankin in #82
- 🔬 Additional tests by @JanSchankin in #90
- 🐛-bug-enum-recorder by @JanSchankin in #92
- 🔨 The default PointCut can now be changed by overriding the PointCut … by @JanSchankin in #97
- 🔨 FILE_SYSTEM is now default for LoadSamples by @JanSchankin in #99
- 🌠 Overwritable BeanConverterExtensions by @JanSchankin in #101
- 🔨 If parameter types don't override equals() an exception will be thrown by @JanSchankin in #102
- 🔨 new test for InvalidConfigException during replay by @JanSchankin in #103
- First draft contribution guidelines by @JanSchankin in #95
- 📚 Copyright updated by @JanSchankin in #104
- 🌠 Release 2.0.0 by @JanSchankin in #105
- Release-merge to main by @JanSchankin in #106
Full Changelog: v1.1.0...v2.0.0
v1.1.0
Merge pull request #54 from ppi-ag/feature-scope-execution Feature scope execution