/// <summary> /// 目录订阅请求 /// </summary> /// <returns></returns> private SIPRequest SubscribeCatalog(SIPEndPoint remoteEndPoint, string remoteSIPId) { string fromTag = CallProperties.CreateNewTag(); int cSeq = CallHelpers.CreateNewCSeq(); string callId = CallProperties.CreateNewCallId(); SIPURI remoteUri = new SIPURI(remoteSIPId, remoteEndPoint.ToHost(), ""); SIPURI localUri = new SIPURI(LocalSIPId, LocalEP.ToHost(), ""); SIPFromHeader from = new SIPFromHeader(null, localUri, fromTag); SIPToHeader to = new SIPToHeader(null, remoteUri, null); SIPRequest catalogReq = _transport.GetRequest(SIPMethodsEnum.SUBSCRIBE, remoteUri); catalogReq.Header.From = from; catalogReq.Header.Contact = new List <SIPContactHeader> { new SIPContactHeader(null, localUri) }; catalogReq.Header.Allow = null; catalogReq.Header.To = to; catalogReq.Header.UserAgent = SIPConstants.SIP_USERAGENT_STRING; catalogReq.Header.Event = "Catalog";//"presence";//"Catalog;id=1894"; catalogReq.Header.Expires = 60000; catalogReq.Header.CSeq = cSeq; catalogReq.Header.CallId = callId; catalogReq.Header.ContentType = "application/MANSCDP+xml";//"Application/MANSCDP+xml" return(catalogReq); }
public async Task Greeting_Success_RepositoryCalled() { // Arrange var mockRepository = new Mock <IGreetRepository>(); var mockCall = CallHelpers.CreateAsyncUnaryCall(new HelloReply { Message = "Test" }); var mockClient = new Mock <Tester.TesterClient>(); mockClient .Setup(m => m.SayHelloUnaryAsync( It.IsAny <HelloRequest>(), null, null, CancellationToken.None)) .Returns(mockCall); var worker = new Worker(mockClient.Object, mockRepository.Object); // Act await worker.StartAsync(CancellationToken.None); // Assert mockRepository.Verify(v => v.SaveGreeting("Test")); }
public async Task Greeting_Error_ExceptionThrown() { // Arrange var mockRepository = new Mock <IGreetRepository>(); var mockClient = new Mock <Tester.TesterClient>(); mockClient .Setup(m => m.SayHelloUnaryAsync(It.IsAny <HelloRequest>(), null, null, CancellationToken.None)) .Returns(CallHelpers.CreateAsyncUnaryCall <HelloReply>(StatusCode.InvalidArgument)); var worker = new Worker(mockClient.Object, mockRepository.Object); // Act & Assert try { await worker.StartAsync(CancellationToken.None); Assert.Fail(); } catch (RpcException ex) { Assert.AreEqual(StatusCode.InvalidArgument, ex.StatusCode); } }
/// <summary> /// 查询设备目录请求 /// </summary> /// <returns></returns> private SIPRequest QueryItems(SIPEndPoint remoteEndPoint, string remoteSIPId) { string fromTag = CallProperties.CreateNewTag(); string toTag = CallProperties.CreateNewTag(); int cSeq = CallHelpers.CreateNewCSeq(); string callId = CallProperties.CreateNewCallId(); SIPURI remoteUri = new SIPURI(remoteSIPId, remoteEndPoint.ToHost(), ""); SIPURI localUri = new SIPURI(LocalSIPId, LocalEP.ToHost(), ""); SIPFromHeader from = new SIPFromHeader(null, localUri, fromTag); SIPToHeader to = new SIPToHeader(null, remoteUri, null); SIPRequest catalogReq = _transport.GetRequest(SIPMethodsEnum.MESSAGE, remoteUri); catalogReq.Header.From = from; catalogReq.Header.Contact = null; catalogReq.Header.Allow = null; catalogReq.Header.To = to; catalogReq.Header.UserAgent = SIPConstants.SIP_USERAGENT_STRING; catalogReq.Header.CSeq = cSeq; catalogReq.Header.CallId = callId; catalogReq.Header.ContentType = "application/MANSCDP+xml"; return(catalogReq); }