public async Task Handle_AllConditionsMet_Success() { // Arrange var content = new MemoryStream(); var reader = new Mock <IFileReader>(); var writer = new Mock <IFileWriter>(); var command = new UploadFileCommand { SourceFileName = "File", Content = content }; _fileStorage .Setup(x => x.CreateFile(It.IsAny <string>())) .Returns(writer.Object); // Act var response = await _handler.Handle(command, CancellationToken.None); // Assert Assert.That(response.TargetFileName, Is.Not.Null); _fileStorage.Verify(x => x.CreateFile(It.IsAny <string>()), Times.Once); _eventService.Verify(x => x.PublishAsync <TemporaryFileUploadedEvent>(It.IsAny <TemporaryFileUploadedEvent>()), Times.Once); writer.Verify(x => x.WriteAsync(It.IsAny <Stream>()), Times.Once); }
public async Task StartReceive() { while (true) { var requestBytes = await _transportHandler.Receive(); var request = requestBytes.Deserialize <Command>(); Console.WriteLine($"Message received: {request.CommandType}"); switch (request.CommandType) { case CommandType.UploadFileRequest: await _uploadFileCommandHandler.Handle(request); break; case CommandType.DownloadFileRequest: await _fileDownloadCommandHandler.Handle(request); break; case CommandType.EchoRequest: await _echoCommandHandler.Handle(request); break; case CommandType.TimeRequest: await _timeCommandHandler.Handle(request); break; case CommandType.Disconnect: _transportHandler.Close(); return; default: continue; } } }