public void TestRecycleEngineActive()
        {
            var xmlResponse = @"<cnpOnlineResponse version='8.23' response='0' message='Valid Format' xmlns='http://www.vantivcnp.com/schema'>
<authorizationResponse>
<cnpTxnId>123</cnpTxnId>
<fraudResult>
<advancedFraudResults>
<deviceReviewStatus>ReviewStatus</deviceReviewStatus>
<deviceReputationScore>800</deviceReputationScore>
<triggeredRule>rule triggered</triggeredRule>
</advancedFraudResults>
</fraudResult>
<recyclingResponse>
<recycleEngineActive>1</recycleEngineActive>
</recyclingResponse>
</authorizationResponse>
</cnpOnlineResponse>";

            var cnpOnlineResponse     = CnpOnline.DeserializeObject(xmlResponse);
            var authorizationResponse = (authorizationResponse)cnpOnlineResponse.authorizationResponse;


            Assert.AreEqual(123, authorizationResponse.cnpTxnId);
            Assert.NotNull(authorizationResponse.fraudResult);
            Assert.NotNull(authorizationResponse.fraudResult.advancedFraudResults);
            Assert.NotNull(authorizationResponse.fraudResult.advancedFraudResults.deviceReviewStatus);
            Assert.AreEqual("ReviewStatus", authorizationResponse.fraudResult.advancedFraudResults.deviceReviewStatus);
            Assert.NotNull(authorizationResponse.fraudResult.advancedFraudResults.deviceReputationScore);
            Assert.AreEqual(800, authorizationResponse.fraudResult.advancedFraudResults.deviceReputationScore);
            Assert.AreEqual("rule triggered", authorizationResponse.fraudResult.advancedFraudResults.triggeredRule[0]);
            Assert.AreEqual(true, authorizationResponse.recyclingResponse.recycleEngineActive);
        }
        public void TestRecurringResponse_NoRecurringTxnId()
        {
            var xmlResponse           = "<cnpOnlineResponse version='8.18' response='0' message='Valid Format' xmlns='http://www.vantivcnp.com/schema'><authorizationResponse><cnpTxnId>123</cnpTxnId><recurringResponse><subscriptionId>12</subscriptionId><responseCode>345</responseCode><responseMessage>Foo</responseMessage></recurringResponse></authorizationResponse></cnpOnlineResponse>";
            var cnpOnlineResponse     = CnpOnline.DeserializeObject(xmlResponse);
            var authorizationResponse = (authorizationResponse)cnpOnlineResponse.authorizationResponse;

            Assert.AreEqual(123, authorizationResponse.cnpTxnId);
            Assert.AreEqual(12, authorizationResponse.recurringResponse.subscriptionId);
            Assert.AreEqual("345", authorizationResponse.recurringResponse.responseCode);
            Assert.AreEqual("Foo", authorizationResponse.recurringResponse.responseMessage);
            Assert.AreEqual(0, authorizationResponse.recurringResponse.recurringTxnId);
        }
        public void TestRecurringResponse_Full()
        {
            String            xmlResponse       = "<cnpOnlineResponse version='8.18' response='0' message='Valid Format' xmlns='http://www.vantivcnp.com/schema'><saleResponse><cnpTxnId>123</cnpTxnId><recurringResponse><subscriptionId>12</subscriptionId><responseCode>345</responseCode><responseMessage>Foo</responseMessage><recurringTxnId>678</recurringTxnId></recurringResponse></saleResponse></cnpOnlineResponse>";
            cnpOnlineResponse cnpOnlineResponse = CnpOnline.DeserializeObject(xmlResponse);
            saleResponse      saleResponse      = (saleResponse)cnpOnlineResponse.saleResponse;

            Assert.AreEqual(123, saleResponse.cnpTxnId);
            Assert.AreEqual(12, saleResponse.recurringResponse.subscriptionId);
            Assert.AreEqual("345", saleResponse.recurringResponse.responseCode);
            Assert.AreEqual("Foo", saleResponse.recurringResponse.responseMessage);
            Assert.AreEqual(678, saleResponse.recurringResponse.recurringTxnId);
        }