public async Task returns_success_status_when_conditionally_appending_with_matching_version() { var stream = _fixture.GetStreamName(); var result = await _fixture.Client.ConditionalAppendToStreamAsync(stream, StreamState.Any, _fixture.CreateTestEvents()); Assert.Equal(ConditionalWriteResult.FromWriteResult(new SuccessResult(0, result.LogPosition)), result); }
public static async Task <ConditionalWriteResult> ConditionalAppendToStreamAsync( this EventStoreClient client, string streamName, StreamRevision expectedRevision, IEnumerable <EventData> eventData, UserCredentials?userCredentials = null, CancellationToken cancellationToken = default) { if (client == null) { throw new ArgumentNullException(nameof(client)); } try { var result = await client.AppendToStreamAsync(streamName, expectedRevision, eventData, options => options.ThrowOnAppendFailure = false, userCredentials, cancellationToken) .ConfigureAwait(false); return(ConditionalWriteResult.FromWriteResult(result)); } catch (StreamDeletedException) { return(ConditionalWriteResult.StreamDeleted); } }