public async Task StreamingFromClientTest() { // init var server = new GreeterService(NullLoggerFactory.Instance); var callContext = TestServerCallContext.Create(); var requestStream = new TestAsyncStreamReader <ExampleRequest>(callContext); // act using var call = server.StreamingFromClient(requestStream, callContext); requestStream.AddMessage(new ExampleRequest { PageIndex = 1, PageSize = 10, IsDescending = false }); requestStream.AddMessage(new ExampleRequest { PageIndex = 2, PageSize = 10, IsDescending = false }); requestStream.AddMessage(new ExampleRequest { PageIndex = 3, PageSize = 10, IsDescending = false }); requestStream.AddMessage(new ExampleRequest { PageIndex = 4, PageSize = 10, IsDescending = false }); requestStream.Complete(); // Assert var response = await call; Assert.IsTrue(response.Age > 1); }
public async Task GreeterService_SayHelloBidirectionalStreaming_ReturnsCorrectResponse() { // Arrange var service = new GreeterService(new Logger <GreeterService>(new NullLoggerFactory())); var callContext = TestServerCallContext.Create(); var requestStream = new TestAsyncStreamReader <HelloRequest>(callContext); var responseStream = new TestServerStreamWriter <HelloReply>(callContext); // Act var call = service.SayHelloBidirectionalStreaming(requestStream, responseStream, callContext); // Assert requestStream.AddMessage(new HelloRequest { Name = "James" }); Assert.AreEqual("Hello James", (await responseStream.ReadNextAsync()) !.Message); requestStream.AddMessage(new HelloRequest { Name = "Jo" }); Assert.AreEqual("Hello Jo", (await responseStream.ReadNextAsync()) !.Message); requestStream.AddMessage(new HelloRequest { Name = "Lee" }); Assert.AreEqual("Hello Lee", (await responseStream.ReadNextAsync()) !.Message); requestStream.Complete(); await call; responseStream.Complete(); Assert.IsNull(await responseStream.ReadNextAsync()); }
public async Task GreeterService_SayHelloServerStreaming_ReturnsCorrectResponse() { // Arrange var service = new GreeterService(new Logger <GreeterService>(new NullLoggerFactory())); var cts = new CancellationTokenSource(); var callContext = TestServerCallContext.Create(cancellationToken: cts.Token); var responseStream = new TestServerStreamWriter <HelloReply>(callContext); // Act var call = service.SayHelloServerStreaming(new HelloRequest { Name = "Joe" }, responseStream, callContext); // Assert Assert.IsFalse(call.IsCompletedSuccessfully, "Method should run until cancelled."); cts.Cancel(); await call; responseStream.Complete(); var allMessages = new List <HelloReply>(); // ReSharper disable once UseCancellationTokenForIAsyncEnumerable await foreach (var message in responseStream.ReadAllAsync()) { allMessages.Add(message); } Assert.IsTrue(allMessages.Count >= 1); Assert.AreEqual("How are you Joe? 1", allMessages[0].Message); }
public async Task GreeterService_SayHelloClientStreaming_ReturnsCorrectResponse() { // Arrange var service = new GreeterService(new Logger <GreeterService>(new NullLoggerFactory())); var callContext = TestServerCallContext.Create(); var requestStream = new TestAsyncStreamReader <HelloRequest>(callContext); // Act var call = service.SayHelloClientStreaming(requestStream, callContext); requestStream.AddMessage(new HelloRequest { Name = "James" }); requestStream.AddMessage(new HelloRequest { Name = "Jo" }); requestStream.AddMessage(new HelloRequest { Name = "Lee" }); requestStream.Complete(); // Assert var response = await call; Assert.AreEqual("Hello James, Jo, Lee", response.Message); }
public ActionResult <string> Get(string name) { var greeterService = new GreeterService(); var result = greeterService.GetGreetText(name ?? "Micros"); return(result); }
public async Task StreamingFromServiceTest() { var service = new GreeterService(NullLoggerFactory.Instance); var cts = new CancellationTokenSource(); var callcontext = TestServerCallContext.Create(cancellationToken: cts.Token); var responseStream = new TestServerStreamWriter <ExampleResponse>(callcontext); try { // act using var call = service.StreamingFromService(new ExampleRequest { PageIndex = 1, PageSize = 10, IsDescending = false }, responseStream, callcontext); // assert Assert.IsFalse(call.IsCompletedSuccessfully, "Method should run until cancelled."); _ = Task.Delay(10000); cts.Cancel(); await call; } catch (Exception ex) { Console.WriteLine($"ex {ex.Message}"); } responseStream.Complete(); var allMessage = new List <ExampleResponse>(); await foreach (var message in responseStream.ReadAllAsync()) { allMessage.Add(message); } Assert.IsTrue(allMessage.Count > 0); }
public void ReplyTest() { var reply = new GreeterService().SayHello(new HelloRequest { Name = "test" }, null !); Assert.Equal("Hello test", reply.Result.Message); }
public async Task Service_greets_sender_client_stream(GreeterService sut, ServerCallContext context, [Frozen] IEnumerable <HelloRequest> requests, IAsyncStreamReader <HelloRequest> requestStream) { var response = await sut.SayHelloClientStream(requestStream, context); foreach (var req in requests) { StringAssert.Contains(req.Name, response.Message); } }
public async Task Service_greets_sender_duplex(GreeterService sut, ServerCallContext context, [Frozen] IEnumerable <HelloRequest> requests, IAsyncStreamReader <HelloRequest> requestStream, IServerStreamWriter <HelloReply> responseStream) { await sut.SayHelloDuplex(requestStream, responseStream, context); foreach (var req in requests) { Mock.Get(responseStream).Verify(p => p.WriteAsync(It.Is <HelloReply>(r => r.Message.EndsWith(req.Name))), Times.Once()); } }
public async Task SayHelloTest() { // arrange var service = new GreeterService(NullLoggerFactory.Instance); // act var response = await service.SayHello(new HelloRequest { Name = "test" }, TestServerCallContext.Create()); // Assert Assert.AreEqual("Hello test", response.Message); }
public async Task GreeterService_SayHelloUnary_ReturnsCorrectResponse() { // Arrange var service = new GreeterService(new Logger <GreeterService>(new NullLoggerFactory())); // Act var response = await service.SayHelloUnary(new HelloRequest { Name = "Joe" }, TestServerCallContext.Create()); // Assert Assert.AreEqual("Hello Joe", response.Message); }
public void GetGreetingWithNameReturnsGoodAfternoonName(string name) { // Arrange var service = new GreeterService(); // Act var greeting = service.GetGreeting(name); // Assert greeting.Should().Be($"Good afternoon, {name}"); }
public void P_GetGreetText_WhenValidNameSent_ThenReturnsGreetText() { //Arrange var greeterService = new GreeterService(); var expectedOutput = "Hello Micros!"; //Act var greetText = greeterService.GetGreetText("Micros"); //Assert Assert.True(greetText == expectedOutput); }
public static void Main(string[] args) { Server server = new Server { Services = { GreeterService.BindService(new GreeterImpl()) }, Ports = { new ServerPort(Address, Port, ServerCredentials.Insecure) } }; server.Start(); Console.WriteLine("\nGreeter Server listening on " + Address + ":" + Port); Console.WriteLine("Press any key to stop the server...\n"); Console.ReadKey(); server.ShutdownAsync().Wait(); }
public async Task Given_RandomName_When_CallingSayHello_Return_GreetingMessage() { // Arrange var loggerMock = new Moq.Mock <ILogger <GreeterService> >(); var contextMock = new Moq.Mock <ServerCallContext>(); var service = new GreeterService(loggerMock.Object); var request = new HelloRequest() { Name = _fixture.Create <string>() }; // Act var result = await service.SayHello(request, contextMock.Object); // Assert Assert.Equal($"Hello {request.Name}", result.Message); }
public void When_Greeted_After_12_Returns_GoodAfternoon() { //Arrange var mockery = new Moq.Mock <IDateTimeService>(); mockery.Setup(s => s.GetCurrent()).Returns(new DateTime(2016, 1, 10, 15, 0, 0)); var mockDateTimeService = mockery.Object; var greeterService = new GreeterService(mockDateTimeService); var name = "Magesh"; var expectedMessage = "Hi Magesh, Good Afternoon!"; //Act var greetMessage = greeterService.Greet(name); //Assert Assert.AreEqual(expectedMessage, greetMessage); }
public async Task Given_EmptyName_When_CallingSayHello_Return_Error() { // Arrange var loggerMock = new Moq.Mock <ILogger <GreeterService> >(); var contextMock = new Moq.Mock <ServerCallContext>(); var service = new GreeterService(loggerMock.Object); var request = new HelloRequest() { Name = string.Empty }; // Act var exception = await Assert.ThrowsAsync <RpcException>(async() => { await service.SayHello(request, contextMock.Object); }); // Assert Assert.Equal(StatusCode.InvalidArgument, exception.StatusCode); }
public async Task StreamingBothWaysTest() { // init var server = new GreeterService(NullLoggerFactory.Instance); var callContext = TestServerCallContext.Create(); var requstStream = new TestAsyncStreamReader <ExampleRequest>(callContext); var responseStream = new TestServerStreamWriter <ExampleResponse>(callContext); // act using var call = server.StreamingBothWays(requstStream, responseStream, callContext); requstStream.AddMessage(new ExampleRequest { PageIndex = 1, PageSize = 10, IsDescending = false }); Assert.IsTrue((await responseStream.ReadNextAsync()).Age > 1); requstStream.Complete(); await call; responseStream.Complete(); Assert.IsNull(await responseStream.ReadNextAsync()); }
static void Main(string[] args) { #region 务实现 HelloRequest request = new HelloRequest(); request.Name = "Simon"; var reply = new GreeterService(_logger).SayHello(request, null); Console.WriteLine("服务1:"); Console.WriteLine("Grpc ServerListening On Port 5001,Out put:" + reply.Result.Message);//Grpc ServerListening On Port 8088,Out put:Hello Simon #endregion #region Demo 服务实现 ResponseModel respModel = new ResponseModel(); respModel.Id = 2; respModel.Name = "Acadsoc"; var resp = new DemoService().DemoMethod(null, null); Console.WriteLine("服务2:根据获取名称"); Console.WriteLine(resp.Result); #endregion #region 获取人员信息 RequestUserId uid = new RequestUserId { Id = 2 }; var person = new PersonInfoService().GetPersonInfoById(uid, null); Console.WriteLine("服务3:根据ID获取对象信息"); Console.WriteLine("获取用户信息为:" + JsonConvert.SerializeObject(person)); // 获取用户信息为:{ "Result":{ "Person":{ "Id":2,"Name":"Lily","Age":30,"Gender":1,"Weight":158.5,"EmailVerified":false,"Phone":[],"Salary":3200.0,"MyAdd":[]} },"Id":1,"Exception":null,"Status":5,"IsCanceled":false,"IsCompleted":true,"IsCompletedSuccessfully":true,"CreationOptions":0,"AsyncState":null,"IsFaulted":false} #endregion Console.WriteLine("任意键退出..."); Console.ReadKey(); }
//private static readonly Channel _channel; //private static GreeterService _client; public HelloServerClient(GreeterService greeterService) { _greeterService = greeterService; }
public HomeController(ILogger <HomeController> logger) { _logger = logger; _service = new GreeterService(); }
public async Task Service_greets_sender_server_stream(GreeterService sut, ServerCallContext context, IServerStreamWriter <HelloReply> responseStream, string name) { await sut.SayHelloServerStream(new HelloRequest { Name = name }, responseStream, context); Mock.Get(responseStream).Verify(p => p.WriteAsync(It.Is <HelloReply>(r => r.Message.EndsWith(name))), Times.Exactly(10)); }
static Task SayHellosBufferHint(HelloRequest request, IServerStreamWriter <HelloReply> responseStream, ServerCallContext context) { context.WriteOptions = new WriteOptions(WriteFlags.BufferHint); return(GreeterService.SayHellosCore(request, responseStream)); }
public async Task Service_greets_sender_unary(GreeterService sut, string name, ServerCallContext context) { var response = await sut.SayHelloUnary(new HelloRequest { Name = name }, context); Assert.That(response.Message, Does.EndWith(name)); }