public void When_EnhanchedDurability_Is_False_Hello_Doesnt_Requests_MutationSeqNo() { const ulong connectionId = 12345; var mockConnection = new Mock <IConnection>(); mockConnection.Setup(x => x.ConnectionId).Returns(connectionId); var mockConnectionPool = new Mock <IConnectionPool>(); mockConnectionPool.Setup(x => x.Acquire()).Returns(mockConnection.Object); mockConnectionPool.SetupGet(x => x.Configuration).Returns(new PoolConfiguration { UseEnhancedDurability = false, ClientConfiguration = new ClientConfiguration { Tracer = NullTracer.Instance } }); var service = new MultiplexingIOService(mockConnectionPool.Object); service.Execute(new FakeOperationWithRequiredKey("key", null, new DefaultTranscoder(), 0)); var features = new[] { (short)ServerFeatures.SubdocXAttributes, (short)ServerFeatures.SelectBucket, (short)ServerFeatures.XError, (short)ServerFeatures.ServerDuration }; var key = IOServiceBase.BuildHelloKey(connectionId); var expectedBytes = new Hello(key, features.ToArray(), new DefaultTranscoder(), 0, 0).Write(); mockConnectionPool.Verify(x => x.Acquire(), Times.Once); mockConnection.Verify(x => x.Send(It.Is <byte[]>(bytes => bytes.SequenceEqual(expectedBytes)))); }
public void Hello_key_is_formatted_with_json_properties() { const ulong connectionId = 123; var result = IOServiceBase.BuildHelloKey(connectionId); var expected = JsonConvert.SerializeObject(new { i = string.Join("/", ClientIdentifier.InstanceId.ToString("x16"), connectionId.ToString("x16")), a = ClientIdentifier.GetClientDescription() }, Formatting.None); Assert.AreEqual(expected, result); }