private IUnifiedTestOperation CreateOperation(BsonDocument operation, UnifiedEntityMap entityMap) { var factory = new UnifiedTestOperationFactory(entityMap, _additionalArgs); var operationName = operation["name"].AsString; var operationTarget = operation["object"].AsString; var operationArguments = operation.GetValue("arguments", null)?.AsBsonDocument; return(factory.CreateOperation(operationName, operationTarget, operationArguments)); }
private void AssertEvents(BsonArray eventItems, UnifiedEntityMap entityMap) { var unifiedEventMatcher = new UnifiedEventMatcher(new UnifiedValueMatcher(entityMap)); foreach (var eventItem in eventItems) { var clientId = eventItem["client"].AsString; var eventCapturer = entityMap.EventCapturers[clientId]; var actualEvents = eventCapturer.Events; unifiedEventMatcher.AssertEventsMatch(actualEvents, eventItem["events"].AsBsonArray); } }
private void AssertEvents(BsonArray eventItems, UnifiedEntityMap entityMap) { var unifiedEventMatcher = new UnifiedEventMatcher(new UnifiedValueMatcher(entityMap)); foreach (var eventItem in eventItems.Cast <BsonDocument>()) { var clientId = eventItem["client"].AsString; var eventCapturer = entityMap.EventCapturers[clientId]; var eventType = eventItem.GetValue("eventType", defaultValue: "command").AsString; var actualEvents = UnifiedEventMatcher.FilterEventsByType(eventCapturer.Events, eventType); unifiedEventMatcher.AssertEventsMatch(actualEvents, eventItem["events"].AsBsonArray); } }
public UnifiedLoopOperation( UnifiedEntityMap entityMap, BsonArray loopOperations, string storeErrorsAsEntity, string storeFailuresAsEntity, string storeIterationsAsEntity, string storeSuccessesAsEntity, CancellationToken loopCancellationToken) { _entityMap = Ensure.IsNotNull(entityMap, nameof(entityMap)); _errorDescriptionDocuments = new BsonArray(); _failureDescriptionDocuments = new BsonArray(); _loopOperations = Ensure.IsNotNull(loopOperations, nameof(loopOperations)); _storeErrorsAsEntity = storeErrorsAsEntity; // can be null _storeFailuresAsEntity = storeFailuresAsEntity; // can be null _storeIterationsAsEntity = storeIterationsAsEntity; // can be null _storeSuccessesAsEntity = storeSuccessesAsEntity; // can be null _loopCancellationToken = loopCancellationToken; }
public UnifiedAggregateOnCollectionOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedCreateCollectionOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedAbortTransactionOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedListDatabasesOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedDistinctOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedListIndexesOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedFindOneAndUpdateOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedAssertSessionUnpinnedOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedRunCommandOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedGridFsDeleteOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedTestOperationFactory(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedAggregateOnDatabaseOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedCreateFindCursorOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedListCollectionsOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
private void AssertResult(OperationResult actualResult, BsonDocument operation, UnifiedEntityMap entityMap) { if (operation.GetValue("ignoreResultAndError", defaultValue: false).ToBoolean()) { return; } if (operation.TryGetValue("expectResult", out var expectedResult)) { actualResult.Exception.Should().BeNull(); new UnifiedValueMatcher(entityMap).AssertValuesMatch(actualResult.Result, expectedResult); } if (operation.TryGetValue("expectError", out var expectedError)) { actualResult.Exception.Should().NotBeNull(); actualResult.Result.Should().BeNull(); new UnifiedErrorMatcher().AssertErrorsMatch(actualResult.Exception, expectedError.AsBsonDocument); } else { actualResult.Exception.Should().BeNull(); } if (operation.TryGetValue("saveResultAsEntity", out var saveResultAsEntity)) { if (actualResult.Result != null) { entityMap.AddResult(saveResultAsEntity.AsString, actualResult.Result); } else if (actualResult.ChangeStream != null) { entityMap.ChangeStreams.Add(saveResultAsEntity.AsString, actualResult.ChangeStream); } else if (actualResult.Cursor != null) { entityMap.Cursors.Add(saveResultAsEntity.AsString, actualResult.Cursor); } else { throw new AssertionException($"Expected result to be present but none found to save with id: '{saveResultAsEntity.AsString}'."); } } }
public UnifiedAssertNumberConnectionsCheckedOutOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public void Run( string schemaVersion, BsonArray testSetRunOnRequirements, BsonArray entities, BsonArray initialData, BsonArray runOnRequirements, string skipReason, BsonArray operations, BsonArray expectedEvents, BsonArray outcome, bool async) { if (_runHasBeenCalled) { throw new InvalidOperationException("The test suite has already been run."); } _runHasBeenCalled = true; var schemaSemanticVersion = SemanticVersion.Parse(schemaVersion); if (schemaSemanticVersion < new SemanticVersion(1, 0, 0) || schemaSemanticVersion > new SemanticVersion(1, 6, 0)) { throw new FormatException($"Schema version '{schemaVersion}' is not supported."); } if (testSetRunOnRequirements != null) { RequireServer.Check().RunOn(testSetRunOnRequirements); } if (runOnRequirements != null) { RequireServer.Check().RunOn(runOnRequirements); } if (skipReason != null) { throw new SkipException($"Test skipped because '{skipReason}'."); } KillOpenTransactions(DriverTestConfiguration.Client); _entityMap = new UnifiedEntityMapBuilder(_eventFormatters, _loggerFactory).Build(entities); if (initialData != null) { AddInitialData(DriverTestConfiguration.Client, initialData); } foreach (var operation in operations) { var cancellationToken = CancellationToken.None; CreateAndRunOperation(operation.AsBsonDocument, async, cancellationToken); } if (expectedEvents != null) { AssertEvents(expectedEvents, _entityMap); } if (outcome != null) { AssertOutcome(DriverTestConfiguration.Client, outcome); } }
public UnifiedInsertOneOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedCountDocumentsOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedBulkWriteOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedDeleteManyOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedAssertDifferentLsidOnLastTwoCommandsOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedIterateUntilDocumentOrErrorOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedEndSessionOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedReplaceOneOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }
public UnifiedEstimatedDocumentCountOperationBuilder(UnifiedEntityMap entityMap) { _entityMap = entityMap; }