fc030a6b2b3dc18356e53b8abd7667bfe283f19a
[kivitendo-erp.git] / t / shop / shopware.t
1 use strict;
2 use Test::More;
3
4 use lib 't';
5 use Support::TestSetup;
6 use Carp;
7 use Test::Exception;
8 use SL::Dev::ALL;
9 use SL::DB::Shop;
10 use SL::DB::ShopOrder;
11 use SL::DB::ShopOrderItem;
12 use SL::Controller::ShopOrder;
13 use SL::Shop;
14 use Data::Dumper;
15 use SL::JSON;
16 use SL::ShopConnector::Shopware;
17 my ($shop, $shopware, $shop_order, $shop_part, $part, $customer, $employee, $json_import);
18
19 sub reset_state {
20   my %params = @_;
21
22   clear_up();
23
24   $shop = SL::Dev::Shop::new_shop( connector         => 'shopware',
25                                    last_order_number => 20000,
26                                    pricetype         => 'brutto',
27                                    price_source      => 'master_data',
28                                    taxzone_id        => 1,
29                                  );
30   $shopware = SL::Shop->new( config => $shop );
31   $part = SL::Dev::Part::new_part( partnumber   => 'SW10002',
32                                          description  => 'TITANIUM CARBON GS 12m cm',
33                                        );
34   $shop_part = SL::Dev::Shop::new_shop_part(part => $part, shop => $shop);
35
36   $employee = SL::DB::Manager::Employee->current || croak "No employee";
37
38   $customer = SL::Dev::CustomerVendor::new_customer(
39     name    => 'Evil Inc',
40     street  => 'Evil Street',
41     zipcode => '66666',
42     email   => 'evil@evilinc.com'
43   )->save;
44
45 }
46
47 sub get_json {
48   local $/;
49   my $file = "t/shop/json_ok.json";
50   my $json_text = do {
51     open(my $json_fh, "<:encoding(UTF-8)", $file)
52          or die("Can't open \"$file\": $!\n");
53     local $/;
54     <$json_fh>
55   };
56
57   return $json_text;
58 }
59
60 sub test_import {
61
62   my $json_import = get_json();
63   note('testing shoporder mapping json good');
64   my $import = SL::JSON::decode_json($json_import);
65   $shop_order = $shopware->connector->import_data_to_shop_order($import);
66   is($shop_order->shop_id , $shop->id  , "shop_id ok");
67 }
68
69 Support::TestSetup::login();
70
71 reset_state();
72
73 test_import();
74
75 done_testing;
76
77 clear_up();
78
79 1;
80
81 sub clear_up {
82   "SL::DB::Manager::${_}"->delete_all(all => 1) for qw(OrderItem Order);
83   "SL::DB::Manager::${_}"->delete_all(all => 1) for qw(ShopPart Part ShopOrderItem ShopOrder Shop Customer);
84 }