Skip to main content
Version: v2

MockContainerRuntimeFactory Class

Factory to create MockContainerRuntime for testing basic submitting and processing of messages. This also acts as a very basic server that stores the messages from all the MockContainerRuntimes and processes them when asked. If test specific logic is required, extend this class and add the logic there. For an example, take a look at MockContainerRuntimeFactoryForReconnection.

This API is provided for existing users, but is not recommended for new users.

To use, import via @fluidframework/test-runtime-utils/legacy.

For more information about our API support guarantees, see here.

Signature​

export declare class MockContainerRuntimeFactory

Constructors​

ConstructorAlertsDescription
(constructor)(mockContainerRuntimeOptions)BetaConstructs a new instance of the MockContainerRuntimeFactory class

Properties​

PropertyAlertsModifiersTypeDescription
lastProcessedMessageBetaISequencedDocumentMessage | undefined
messagesBetaISequencedDocumentMessage[]The MockContainerRuntimes we produce will push messages into this queue as they are submitted. This is playing the role of the orderer, establishing a single universal order for the messages generated. They are held in this queue until we explicitly choose to process them, at which time they are "broadcast" to each of the runtimes.
minSeqBetaMap<string, number>
outstandingMessageCountBetareadonlynumber
quorumBetareadonlyMockQuorumClients
runtimeOptionsBetareadonlyRequired<IMockContainerRuntimeOptions>

The container runtime options which will be provided to the all runtimes created by this factory and also drive the way the ops are processed.

See IMockContainerRuntimeOptions

runtimesBetareadonlySet<MockContainerRuntime>
sequenceNumberBetanumber

Methods​

MethodAlertsReturn TypeDescription
createContainerRuntime(dataStoreRuntime)BetaMockContainerRuntime
getFirstMessageToProcess()BetaISequencedDocumentMessage
getMinSeq()BetanumberGets the minimum sequence number for all connected clients.
processAllMessages()BetavoidProcess all remaining messages in the queue.
processOneMessage()BetavoidProcess one of the queued messages. Throws if no messages are queued.
processSomeMessages(count)BetavoidProcess a given number of queued messages. Throws if there are fewer messages queued than requested.
pushMessage(msg)Betavoid
removeContainerRuntime(containerRuntime)Betavoid

Constructor Details​

(constructor)​

Constructs a new instance of the MockContainerRuntimeFactory class

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

constructor(mockContainerRuntimeOptions?: IMockContainerRuntimeOptions);

Parameters​

ParameterModifiersTypeDescription
mockContainerRuntimeOptionsoptionalIMockContainerRuntimeOptions

Property Details​

lastProcessedMessage​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

protected lastProcessedMessage: ISequencedDocumentMessage | undefined;

Type: ISequencedDocumentMessage | undefined

messages​

The MockContainerRuntimes we produce will push messages into this queue as they are submitted. This is playing the role of the orderer, establishing a single universal order for the messages generated. They are held in this queue until we explicitly choose to process them, at which time they are "broadcast" to each of the runtimes.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

protected messages: ISequencedDocumentMessage[];

Type: ISequencedDocumentMessage[]

minSeq​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

minSeq: Map<string, number>;

Type: Map<string, number>

outstandingMessageCount​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

get outstandingMessageCount(): number;

Type: number

quorum​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

readonly quorum: MockQuorumClients;

Type: MockQuorumClients

runtimeOptions​

The container runtime options which will be provided to the all runtimes created by this factory and also drive the way the ops are processed.

See IMockContainerRuntimeOptions

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

protected readonly runtimeOptions: Required<IMockContainerRuntimeOptions>;

Type: Required<IMockContainerRuntimeOptions>

runtimes​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

protected readonly runtimes: Set<MockContainerRuntime>;

Type: Set<MockContainerRuntime>

sequenceNumber​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

sequenceNumber: number;

Type: number

Method Details​

createContainerRuntime​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

createContainerRuntime(dataStoreRuntime: MockFluidDataStoreRuntime): MockContainerRuntime;

Parameters​

ParameterTypeDescription
dataStoreRuntimeMockFluidDataStoreRuntime

Returns​

Return type: MockContainerRuntime

getFirstMessageToProcess​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

protected getFirstMessageToProcess(): ISequencedDocumentMessage;

Returns​

Return type: ISequencedDocumentMessage

getMinSeq​

Gets the minimum sequence number for all connected clients.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

getMinSeq(): number;

Returns​

Return type: number

processAllMessages​

Process all remaining messages in the queue.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

processAllMessages(): void;

processOneMessage​

Process one of the queued messages. Throws if no messages are queued.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

processOneMessage(): void;

processSomeMessages​

Process a given number of queued messages. Throws if there are fewer messages queued than requested.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

processSomeMessages(count: number): void;

Parameters​

ParameterTypeDescription
countnumberthe number of messages to process

pushMessage​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

pushMessage(msg: Partial<ISequencedDocumentMessage>): void;

Parameters​

ParameterTypeDescription
msgPartial<ISequencedDocumentMessage>

removeContainerRuntime​

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

removeContainerRuntime(containerRuntime: MockContainerRuntime): void;

Parameters​

ParameterTypeDescription
containerRuntimeMockContainerRuntime