public function test_validate_throws_exception_on_missing_CountryCode()
 {
     $this->setExpectedException('Svea\\ValidationException', '-missing value : countryCode is required.');
     unset($this->builderObject->countryCode);
     $getOrdersRequestObject = new Svea\AdminService\GetOrdersRequest($this->builderObject);
     $request = $getOrdersRequestObject->prepareRequest();
 }
 public function test_manual_GetOrdersRequest_for_paymentplan_order()
 {
     // Stop here and mark this test as incomplete.
     //    $this->markTestIncomplete(
     //        'skeleton for test_manual_GetOrdersRequest_for_paymentplan_order'
     //    );
     // create order
     $country = "SE";
     //        $order = TestUtil::createOrder( TestUtil::createIndividualCustomer($country) );
     //        $order->addOrderRow( TestUtil::createOrderRow( 1000.00 ) );
     //        $orderResponse = $order->usePaymentPlanPayment( TestUtil::getGetPaymentPlanParamsForTesting($country) )->doRequest();
     //        $this->assertEquals(1, $orderResponse->accepted);
     //
     $getOrdersBuilder = new Svea\QueryOrderBuilder(Svea\SveaConfig::getDefaultConfig());
     //$getOrdersBuilder->setOrderId($orderResponse->sveaOrderId);
     $getOrdersBuilder->setOrderId(414812);
     $getOrdersBuilder->setCountryCode($country);
     $getOrdersBuilder->orderType = ConfigurationProvider::PAYMENTPLAN_TYPE;
     $request = new Svea\AdminService\GetOrdersRequest($getOrdersBuilder);
     $getOrdersResponse = $request->doRequest();
     // Example test_GetOrdersRequest_for_invoice_company_customer_order raw request response
     //
     // stdClass Object
     //(
     //    [ErrorMessage] =>
     //    [ResultCode] => 0
     //    [Orders] => stdClass Object
     //        (
     //            [Order] => stdClass Object
     //                (
     //                    [ChangedDate] =>
     //                    [ClientId] => 59999
     //                    [ClientOrderId] => clientOrderNumber:2014-09-11T17:57:07+02:00
     //                    [CreatedDate] => 2014-09-11T17:57:08.777
     //                    [CreditReportStatus] => stdClass Object
     //                        (
     //                            [Accepted] => true
     //                            [CreationDate] => 2014-09-11T17:57:08.87
     //                        )
     //
     //                    [Currency] => SEK
     //                    [Customer] => stdClass Object
     //                        (
     //                            [CoAddress] => c/o Eriksson, Erik
     //                            [CompanyIdentity] =>
     //                            [CountryCode] => SE
     //                            [CustomerType] => Individual
     //                            [Email] =>
     //                            [FullName] => Persson, Tess T
     //                            [HouseNumber] =>
     //                            [IndividualIdentity] => stdClass Object
     //                                (
     //                                    [BirthDate] =>
     //                                    [FirstName] =>
     //                                    [Initials] =>
     //                                    [LastName] =>
     //                                )
     //
     //                            [Locality] => Stan
     //                            [NationalIdNumber] => 194605092222
     //                            [PhoneNumber] =>
     //                            [PublicKey] =>
     //                            [Street] => Testgatan 1
     //                            [ZipCode] => 99999
     //                        )
     //
     //                    [CustomerId] => 1000013
     //                    [CustomerReference] => created by TestUtil::createOrder()
     //                    [DeliveryAddress] =>
     //                    [IsPossibleToAdminister] => false
     //                    [IsPossibleToCancel] => true
     //                    [Notes] =>
     //                    [OrderDeliveryStatus] => Created
     //                    [OrderRows] => stdClass Object
     //                        (
     //                            [NumberedOrderRow] => Array
     //                                (
     //                                    [0] => stdClass Object
     //                                        (
     //                                            [ArticleNumber] => 1
     //                                            [Description] => Product: Specification
     //                                            [DiscountPercent] => 0.00
     //                                            [NumberOfUnits] => 2.00
     //                                            [PricePerUnit] => 100.00
     //                                            [Unit] => st
     //                                            [VatPercent] => 25.00
     //                                            [CreditInvoiceId] =>
     //                                            [InvoiceId] =>
     //                                            [RowNumber] => 1
     //                                            [Status] => NotDelivered
     //                                        )
     //
     //                                    [1] => stdClass Object
     //                                        (
     //                                            [ArticleNumber] => 1
     //                                            [Description] => Product: Specification
     //                                            [DiscountPercent] => 0.00
     //                                            [NumberOfUnits] => 2.00
     //                                            [PricePerUnit] => 1000.00
     //                                            [Unit] => st
     //                                            [VatPercent] => 25.00
     //                                            [CreditInvoiceId] =>
     //                                            [InvoiceId] =>
     //                                            [RowNumber] => 2
     //                                            [Status] => NotDelivered
     //                                        )
     //
     //                                )
     //
     //                        )
     //
     //                    [OrderStatus] => Active
     //                    [OrderType] => PaymentPlan
     //                    [PaymentPlanDetails] => stdClass Object
     //                        (
     //                            [ContractLengthMonths] => 3
     //                            [ContractNumber] =>
     //                        )
     //
     //                    [PendingReasons] =>
     //                    [SveaOrderId] => 414812
     //                    [SveaWillBuy] => true
     //                )
     //
     //        )
     //
     //)
     ////print_r( $getOrdersResponse );
     $this->assertInstanceOf('Svea\\AdminService\\GetOrdersResponse', $getOrdersResponse);
     $this->assertEquals(1, $getOrdersResponse->accepted);
     $this->assertEquals(0, $getOrdersResponse->resultcode);
     $this->assertEquals(null, $getOrdersResponse->errormessage);
     $this->assertEquals(null, $getOrdersResponse->changedDate);
     // TODO add test for changed order later
     $this->assertEquals(59999, $getOrdersResponse->clientId);
     $this->assertEquals("clientOrderNumber:2014-09-11T17:57:07+02:00", $getOrdersResponse->clientOrderId);
     $this->assertEquals("2014-09-11T17:57:08.777", $getOrdersResponse->createdDate);
     $this->assertEquals(true, $getOrdersResponse->creditReportStatusAccepted);
     $this->assertEquals("2014-09-11T17:57:08.87", $getOrdersResponse->creditReportStatusCreationDate);
     $this->assertEquals("SEK", $getOrdersResponse->currency);
     $this->assertInstanceOf("Svea\\IndividualCustomer", $getOrdersResponse->customer);
     // asserting customer attributes in other testcases
     //$this->assertEquals( null, $getOrdersResponse->customer->email );  // -- returns current customer id email, may change
     $this->assertEquals("1000013", $getOrdersResponse->customerId);
     $this->assertEquals("created by TestUtil::createOrder()", $getOrdersResponse->customerReference);
     $this->assertEquals(false, $getOrdersResponse->isPossibleToAdminister);
     $this->assertEquals(true, $getOrdersResponse->isPossibleToCancel);
     $this->assertEquals(null, $getOrdersResponse->notes);
     $this->assertEquals("Created", $getOrdersResponse->orderDeliveryStatus);
     $this->assertInstanceOf("Svea\\NumberedOrderRow", $getOrdersResponse->numberedOrderRows[0]);
     // asserting order row attributes in invoice testcase
     $this->assertEquals("Active", $getOrdersResponse->orderStatus);
     $this->assertEquals("PaymentPlan", $getOrdersResponse->orderType);
     $this->assertEquals(3, $getOrdersResponse->paymentPlanDetailsContractLengthMonths);
     $this->assertEquals(null, $getOrdersResponse->paymentPlanDetailsContractNumber);
     $this->assertEquals(null, $getOrdersResponse->pendingReasons);
     $this->assertEquals(414812, $getOrdersResponse->orderId);
     $this->assertEquals(true, $getOrdersResponse->sveaWillBuy);
 }