Class DurableStateStoreSpec
java.lang.Object
org.apache.pekko.persistence.PluginSpec
org.apache.pekko.persistence.state.DurableStateStoreSpec
- All Implemented Interfaces:
Serializable,CapabilityFlags,DurableStateStoreCapabilityFlags,MayVerb,OptionalTests,TestKitBase,org.scalactic.Explicitly,org.scalactic.Tolerance,org.scalactic.TripleEquals,org.scalactic.TripleEqualsSupport,org.scalatest.Alerting,org.scalatest.Assertions,org.scalatest.BeforeAndAfterAll,org.scalatest.BeforeAndAfterEach,org.scalatest.Documenting,org.scalatest.Informing,org.scalatest.matchers.dsl.MatcherWords,org.scalatest.matchers.should.Matchers,org.scalatest.Notifying,org.scalatest.Suite,org.scalatest.SuiteMixin,org.scalatest.TestRegistration,org.scalatest.TestSuite,org.scalatest.verbs.CanVerb,org.scalatest.verbs.MustVerb,org.scalatest.verbs.ShouldVerb,org.scalatest.wordspec.AnyWordSpecLike
- Direct Known Subclasses:
JavaDurableStateStoreSpec
public abstract class DurableStateStoreSpec
extends PluginSpec
implements MayVerb, OptionalTests, DurableStateStoreCapabilityFlags
This spec aims to verify custom pekko-persistence
DurableStateStore implementations.
Plugin authors are highly encouraged to include it in their plugin's test suites.
In case your durable state store plugin needs some kind of setup or teardown, override the beforeAll
or afterAll methods (don't forget to call super in your overridden methods).
For a Java and JUnit consumable version of the TCK please refer to
pekko.persistence.japi.state.JavaDurableStateStoreSpec.
- See Also:
-
pekko.persistence.japi.state.JavaDurableStateStoreSpec- Serialized Form
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.scalatest.wordspec.AnyWordSpecLike
org.scalatest.wordspec.AnyWordSpecLike.AfterWord, org.scalatest.wordspec.AnyWordSpecLike.ItWord, org.scalatest.wordspec.AnyWordSpecLike.ResultOfTaggedAsInvocationOnString, org.scalatest.wordspec.AnyWordSpecLike.TheyWord, org.scalatest.wordspec.AnyWordSpecLike.WordSpecStringWrapperNested classes/interfaces inherited from interface org.scalatest.Assertions
org.scalatest.Assertions.AssertionsHelperNested classes/interfaces inherited from interface org.scalatest.verbs.CanVerb
org.scalatest.verbs.CanVerb.StringCanWrapperForVerbNested classes/interfaces inherited from interface org.scalactic.Explicitly
org.scalactic.Explicitly.DecidedByEquality<A extends Object>, org.scalactic.Explicitly.DecidedWord, org.scalactic.Explicitly.DeterminedByEquivalence<T extends Object>, org.scalactic.Explicitly.DeterminedWord, org.scalactic.Explicitly.TheAfterWordNested classes/interfaces inherited from interface org.scalatest.matchers.should.Matchers
org.scalatest.matchers.should.Matchers.AnWord, org.scalatest.matchers.should.Matchers.AnyShouldWrapper<T extends Object>, org.scalatest.matchers.should.Matchers.AWord, org.scalatest.matchers.should.Matchers.Collected, org.scalatest.matchers.should.Matchers.HavePropertyMatcherGenerator, org.scalatest.matchers.should.Matchers.KeyWord, org.scalatest.matchers.should.Matchers.RegexWord, org.scalatest.matchers.should.Matchers.RegexWrapper, org.scalatest.matchers.should.Matchers.ResultOfBeWordForAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfBeWordForCollectedAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfBeWordForCollectedArray<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfCollectedAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfContainWordForCollectedAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfEndWithWordForCollectedString, org.scalatest.matchers.should.Matchers.ResultOfEndWithWordForString, org.scalatest.matchers.should.Matchers.ResultOfFullyMatchWordForCollectedString, org.scalatest.matchers.should.Matchers.ResultOfFullyMatchWordForString, org.scalatest.matchers.should.Matchers.ResultOfHaveWordForCollectedExtent<A extends Object>, org.scalatest.matchers.should.Matchers.ResultOfHaveWordForExtent<A extends Object>, org.scalatest.matchers.should.Matchers.ResultOfIncludeWordForCollectedString, org.scalatest.matchers.should.Matchers.ResultOfIncludeWordForString, org.scalatest.matchers.should.Matchers.ResultOfNotWordForCollectedAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfStartWithWordForCollectedString, org.scalatest.matchers.should.Matchers.ResultOfStartWithWordForString, org.scalatest.matchers.should.Matchers.StringShouldWrapper, org.scalatest.matchers.should.Matchers.TheSameInstanceAsPhrase, org.scalatest.matchers.should.Matchers.ValueWordNested classes/interfaces inherited from interface org.apache.pekko.persistence.scalatest.MayVerb
MayVerb.StringMayWrapperForVerb, MayVerb.TestCanceledByFailure, MayVerb.TestCanceledByFailure$Nested classes/interfaces inherited from interface org.scalatest.verbs.MustVerb
org.scalatest.verbs.MustVerb.StringMustWrapperForVerbNested classes/interfaces inherited from interface org.scalatest.verbs.ShouldVerb
org.scalatest.verbs.ShouldVerb.StringShouldWrapperForVerbNested classes/interfaces inherited from interface org.scalatest.TestSuite
org.scalatest.TestSuite.NoArgTest, org.scalatest.TestSuite.NoArgTest$Nested classes/interfaces inherited from interface org.scalactic.Tolerance
org.scalactic.Tolerance.PlusOrMinusWrapper<T extends Object>Nested classes/interfaces inherited from interface org.scalactic.TripleEqualsSupport
org.scalactic.TripleEqualsSupport.AToBEquivalenceConstraint<A extends Object,B extends Object>, org.scalactic.TripleEqualsSupport.BToAEquivalenceConstraint<A extends Object, B extends Object>, org.scalactic.TripleEqualsSupport.CheckingEqualizer<L extends Object>, org.scalactic.TripleEqualsSupport.EqualityConstraint<A extends Object, B extends Object>, org.scalactic.TripleEqualsSupport.Equalizer<L extends Object>, org.scalactic.TripleEqualsSupport.Spread<T extends Object>, org.scalactic.TripleEqualsSupport.Spread$, org.scalactic.TripleEqualsSupport.TripleEqualsInvocation<T extends Object>, org.scalactic.TripleEqualsSupport.TripleEqualsInvocation$, org.scalactic.TripleEqualsSupport.TripleEqualsInvocationOnSpread<T extends Object>, org.scalactic.TripleEqualsSupport.TripleEqualsInvocationOnSpread$ -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidstatic com.typesafe.config.Configconfig()Returns theDurableStateUpdateStoreunder test.voidOverridable hook that is called before each test case.protected CapabilityFlagWhentrueenables tests which check if the durable state store properly rejects adeleteObjectcall when the revision does not match the stored revision.protected CapabilityFlagWhentrueenables tests which check if the durable state store properly serializes and deserializes values via the configured Pekko serializer infrastructure.protected CapabilityFlagWhentrueenables tests which check the deprecated single-argumentdeleteObject(persistenceId)overload, which deletes regardless of the current revision.protected CapabilityFlagWhentrueenables tests which check if the durable state store properly rejects anupsertObjectcall when the revision is stale (does not match the expected next revision).system()protected scala.concurrent.duration.FiniteDurationtimeout()Methods inherited from class org.apache.pekko.persistence.PluginSpec
a, actorInstanceId, after, afterAll, an, be, beforeAll, behave, compile, config, contain, decided, defined, determined, empty, endWith, exist, extension, fullyMatch, have, include, invokeBeforeAllAndAfterAllEvenIfNoTestsAreExpected, it, key, length, matchPattern, NoArgTest, not, org$scalactic$Explicitly$_setter_$after_$eq, org$scalactic$Explicitly$_setter_$decided_$eq, org$scalactic$Explicitly$_setter_$determined_$eq, org$scalatest$Assertions$_setter_$succeed_$eq, org$scalatest$BeforeAndAfterAll$_setter_$invokeBeforeAllAndAfterAllEvenIfNoTestsAreExpected_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$be_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$compile_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$contain_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$defined_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$empty_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$endWith_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$exist_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$fullyMatch_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$have_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$include_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$length_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$matchPattern_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$not_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$readable_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$size_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$sorted_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$startWith_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$typeCheck_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$writable_$eq, org$scalatest$matchers$should$Matchers$_setter_$a_$eq, org$scalatest$matchers$should$Matchers$_setter_$an_$eq, org$scalatest$matchers$should$Matchers$_setter_$key_$eq, org$scalatest$matchers$should$Matchers$_setter_$regex_$eq, org$scalatest$matchers$should$Matchers$_setter_$theSameInstanceAs_$eq, org$scalatest$matchers$should$Matchers$_setter_$value_$eq, org$scalatest$Suite$_setter_$styleName_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$behave_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$it_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$stackDepth_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$styleName_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$subjectRegistrationFunction_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$subjectWithAfterWordRegistrationFunction_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$they_$eq, pid, readable, regex, size, sorted, startWith, styleName, subjectRegistrationFunction, subjectWithAfterWordRegistrationFunction, subscribe, succeed, testActor, theSameInstanceAs, they, typeCheck, value, writable, writerUuidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.scalatest.wordspec.AnyWordSpecLike
afterWord, alert, convertToWordSpecStringWrapper, info, markup, note, org$scalatest$wordspec$AnyWordSpecLike$_setter_$org$scalatest$wordspec$AnyWordSpecLike$$engine_$eq, org$scalatest$wordspec$AnyWordSpecLike$$engine, org$scalatest$wordspec$AnyWordSpecLike$$registerBranch, org$scalatest$wordspec$AnyWordSpecLike$$registerShorthandBranch, org$scalatest$wordspec$AnyWordSpecLike$$registerTestToIgnore, org$scalatest$wordspec$AnyWordSpecLike$$registerTestToRun, registerIgnoredTest, registerTest, run, runTest, runTests, tags, testDataFor, testDataFor$default$2, testNamesMethods inherited from interface org.scalatest.Assertions
assertResult, assertResult, assertThrows, cancel, cancel, cancel, cancel, fail, fail, fail, fail, intercept, newAssertionFailedException, newTestCanceledException, pending, pendingUntilFixed, withClueMethods inherited from interface org.scalatest.BeforeAndAfterAll
runMethods inherited from interface org.scalatest.BeforeAndAfterEach
afterEach, runTestMethods inherited from interface org.scalatest.verbs.CanVerb
convertToStringCanWrapperMethods inherited from interface org.scalatest.matchers.should.Matchers
$greater, $greater$eq, $less, $less$eq, a, all, all, all, all, allElementsOf, allOf, an, atLeast, atLeast, atLeast, atLeast, atLeastOneElementOf, atLeastOneOf, atMost, atMost, atMost, atMost, atMostOneElementOf, atMostOneOf, between, between, between, convertSymbolToHavePropertyMatcherGenerator, convertToAnyShouldWrapper, convertToRegexWrapper, convertToStringShouldWrapper, definedAt, doCollected, equal, equal, every, every, every, every, exactly, exactly, exactly, exactly, inOrder, inOrderElementsOf, inOrderOnly, message, no, no, no, noElementsOf, noneOf, of, oneElementOf, oneOf, only, org$scalatest$matchers$should$Matchers$_setter_$org$scalatest$matchers$should$Matchers$$AllCollected_$eq, org$scalatest$matchers$should$Matchers$_setter_$org$scalatest$matchers$should$Matchers$$EveryCollected_$eq, org$scalatest$matchers$should$Matchers$_setter_$org$scalatest$matchers$should$Matchers$$NoCollected_$eq, org$scalatest$matchers$should$Matchers$_setter_$org$scalatest$matchers$should$Matchers$$ShouldMethodHelper_$eq, org$scalatest$matchers$should$Matchers$$AllCollected, org$scalatest$matchers$should$Matchers$$AtLeastCollected, org$scalatest$matchers$should$Matchers$$AtMostCollected, org$scalatest$matchers$should$Matchers$$BetweenCollected, org$scalatest$matchers$should$Matchers$$EveryCollected, org$scalatest$matchers$should$Matchers$$ExactlyCollected, org$scalatest$matchers$should$Matchers$$NoCollected, org$scalatest$matchers$should$Matchers$$ShouldMethodHelper, the, theSameElementsAs, theSameElementsInOrderAs, thrownByMethods inherited from interface org.scalatest.matchers.dsl.MatcherWords
equal, noExceptionMethods inherited from interface org.apache.pekko.persistence.scalatest.MayVerb
convertToStringMayWrapper, mayVerbStacktraceContextFrames, optionalMethods inherited from interface org.scalatest.verbs.MustVerb
convertToStringMustWrapperForVerbMethods inherited from interface org.apache.pekko.persistence.scalatest.OptionalTests
optionalMethods inherited from interface org.scalatest.verbs.ShouldVerb
convertToStringShouldWrapperForVerbMethods inherited from interface org.scalatest.Suite
createCatchReporter, execute, execute$default$1, execute$default$2, execute$default$3, execute$default$4, execute$default$5, execute$default$6, execute$default$7, expectedTestCount, nestedSuites, rerunner, runNestedSuites, suiteId, suiteNameMethods inherited from interface org.scalatest.SuiteMixin
expectedTestCount, nestedSuites, rerunner, runNestedSuites, runTests, suiteId, suiteName, tags, testDataFor, testNamesMethods inherited from interface org.apache.pekko.testkit.TestKitBase
assertForDuration, assertForDuration$default$3, awaitAssert, awaitAssert$default$2, awaitAssert$default$3, awaitCond, awaitCond$default$2, awaitCond$default$3, awaitCond$default$4, checkMissingAndUnexpected, childActorOf, childActorOf, childActorOf, childActorOf, end_$eq, expectMsg, expectMsg, expectMsg, expectMsg_internal, expectMsg_internal$default$3, expectMsgAllClassOf, expectMsgAllClassOf, expectMsgAllConformingOf, expectMsgAllConformingOf, expectMsgAllOf, expectMsgAllOf, expectMsgAllOf_internal, expectMsgAnyClassOf, expectMsgAnyClassOf, expectMsgAnyClassOf_internal, expectMsgAnyOf, expectMsgAnyOf, expectMsgAnyOf_internal, expectMsgClass, expectMsgClass, expectMsgClass_internal, expectMsgPF, expectMsgPF$default$1, expectMsgPF$default$2, expectMsgType, expectMsgType, expectNoMessage, expectNoMessage, expectNoMsg_internal, expectTerminated, expectTerminated$default$2, fishForMessage, fishForMessage$default$1, fishForMessage$default$2, fishForSpecificMessage, fishForSpecificMessage$default$1, fishForSpecificMessage$default$2, format, ignoreMsg, ignoreNoMsg, internalExpectMsgAllClassOf, internalExpectMsgAllConformingOf, lastSender, lastWasNoMsg_$eq, msgAvailable, now, receiveN, receiveN, receiveN_internal, receiveOne, receiveWhile, receiveWhile$default$1, receiveWhile$default$2, receiveWhile$default$3, remaining, remainingOr, remainingOrDefault, remainingOrDilated, setAutoPilot, shutdown, shutdown$default$1, shutdown$default$2, shutdown$default$3, testActorName, testKitSettings, unwatch, watch, within, withinMethods inherited from interface org.scalatest.TestSuite
withFixtureMethods inherited from interface org.scalactic.Tolerance
convertNumericToPlusOrMinusWrapperMethods inherited from interface org.scalactic.TripleEquals
conversionCheckedConstraint, convertEquivalenceToAToBConstraint, convertEquivalenceToAToBConversionConstraint, convertEquivalenceToBToAConstraint, convertEquivalenceToBToAConversionConstraint, convertToCheckingEqualizer, convertToEqualizer, lowPriorityConversionCheckedConstraint, lowPriorityTypeCheckedConstraint, typeCheckedConstraint, unconstrainedEqualityMethods inherited from interface org.scalactic.TripleEqualsSupport
$bang$eq$eq, $bang$eq$eq, $bang$eq$eq, $eq$eq$eq, $eq$eq$eq, $eq$eq$eq, defaultEquality
-
Constructor Details
-
DurableStateStoreSpec
public DurableStateStoreSpec(com.typesafe.config.Config config)
-
-
Method Details
-
config
public static com.typesafe.config.Config config() -
system
- Specified by:
systemin interfaceTestKitBase
-
supportsDeleteWithRevisionCheck
Description copied from interface:DurableStateStoreCapabilityFlagsWhentrueenables tests which check if the durable state store properly rejects adeleteObjectcall when the revision does not match the stored revision.- Specified by:
supportsDeleteWithRevisionCheckin interfaceDurableStateStoreCapabilityFlags
-
supportsUpsertWithRevisionCheck
Description copied from interface:DurableStateStoreCapabilityFlagsWhentrueenables tests which check if the durable state store properly rejects anupsertObjectcall when the revision is stale (does not match the expected next revision). This is the optimistic concurrency check on writes.- Specified by:
supportsUpsertWithRevisionCheckin interfaceDurableStateStoreCapabilityFlags
-
supportsSerialization
Description copied from interface:DurableStateStoreCapabilityFlagsWhentrueenables tests which check if the durable state store properly serializes and deserializes values via the configured Pekko serializer infrastructure.- Specified by:
supportsSerializationin interfaceDurableStateStoreCapabilityFlags
-
supportsSoftDelete
Description copied from interface:DurableStateStoreCapabilityFlagsWhentrueenables tests which check the deprecated single-argumentdeleteObject(persistenceId)overload, which deletes regardless of the current revision.- Specified by:
supportsSoftDeletein interfaceDurableStateStoreCapabilityFlags
-
beforeEach
protected void beforeEach()- Specified by:
beforeEachin interfaceorg.scalatest.BeforeAndAfterEach- Overrides:
beforeEachin classPluginSpec
-
preparePersistenceId
Overridable hook that is called before each test case.pidis thepersistenceIdthat will be used in the test. This method may be needed to clean any pre-existing state from the store, for example when running against a shared external database. -
durableStateStore
Returns theDurableStateUpdateStoreunder test. By default, this uses the plugin configured underpekko.persistence.state.pluginin the provided config. -
timeout
protected scala.concurrent.duration.FiniteDuration timeout()
-