コード例 #1
0
        public void Result_Has_Failure_Status_If_ErrorMap_Available()
        {
            const string codeString = "2C"; // 44
            var          code       = short.Parse(codeString, NumberStyles.HexNumber);
            var          errorCode  = new ErrorCode {
                name = "test"
            };
            var errorMap = new ErrorMap
            {
                version  = 1,
                revision = 1,
                errors   = new Dictionary <string, ErrorCode>
                {
                    { codeString, errorCode }
                }
            };

            var converter     = new DefaultConverter();
            var responseBytes = new byte[24];

            converter.FromInt16(code, responseBytes, HeaderIndexFor.Status);

            var mockConnection = new Mock <IConnection>();

            mockConnection.Setup(x => x.IsConnected).Returns(true);
            mockConnection.Setup(x => x.Send(It.IsAny <byte[]>())).Returns(responseBytes);

            var mockConnectionPool = new Mock <IConnectionPool>();

            mockConnectionPool.Setup(x => x.Acquire()).Returns(mockConnection.Object);
            mockConnectionPool.SetupGet(x => x.Configuration).Returns(new PoolConfiguration());

            var service = new PooledIOService(mockConnectionPool.Object);

            service.SetErrorMap(errorMap);

            var result = service.Execute(new FakeOperationWithRequiredKey("key", null, new DefaultTranscoder(), 0, 0));

            Assert.AreEqual(ResponseStatus.Failure, result.Status);
            Assert.AreEqual(errorCode.ToString(), result.Message);
        }