public async Task Timeout_CallsCreateItemAsync_OnCosmosContainerWhenTimeoutRecordDoesNotExist() { const string PlayerId = "TestPlayer"; const string Source = "CosmosEventWriterUnitTests"; var mockTimerClient = new Mock <ICosmosTimerClient>(); mockTimerClient.Setup(timerClient => timerClient.GetPlayerTimeoutRecord(It.Is <string>(s => s == Source), It.Is <string>(s => s == PlayerId))) .Returns(Task.FromResult(new ResponseMessage(HttpStatusCode.NotFound))) .Verifiable(); mockTimerClient.Setup(timerClient => timerClient.CreatePlayerTimeoutRecord(It.Is <string>(s => s == Source), It.Is <string>(s => s == PlayerId))) .Returns(Task.FromResult(new ResponseMessage(HttpStatusCode.OK))) .Verifiable(); var structureUnderTest = new CosmosTimer(mockTimerClient.Object); await structureUnderTest.Timeout(PlayerId, Source); mockTimerClient.Verify( timerClient => timerClient.GetPlayerTimeoutRecord(It.Is <string>(s => s == Source), It.Is <string>(s => s == PlayerId)), Times.Once); mockTimerClient.Verify(timerClient => timerClient.CreatePlayerTimeoutRecord(It.Is <string>(s => s == Source), It.Is <string>(s => s == PlayerId)), Times.Once); }