Skip to content

Commit 684fd08

Browse files
committedNov 9, 2016
Robustness improvement we can submit repo source files one-by-one, Shoes visualization still WIP
1 parent c71961d commit 684fd08

10 files changed

+535
-22
lines changed
 

‎.DS_Store

6 KB
Binary file not shown.

‎lib/merchant_analyst.rb

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
require 'pry'
21
require_relative 'calculator'
32

43
#Colection of methods used for Merchant related

‎lib/sales_engine.rb

+14-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
require_relative 'sales_engine_relations'
88
require_relative 'sales_engine_grouping'
99
require_relative 'sales_engine_create'
10-
require 'pry'
1110

1211
#Support for Sales Analyst layer, connecting Sales Analyst and
1312
#various repositories with each other
@@ -24,13 +23,21 @@ class SalesEngine
2423
:transactions
2524

2625
def initialize(files)
26+
file_loader(files)
27+
end
28+
29+
def from_csv(files)
30+
file_loader(files)
31+
end
32+
33+
def file_loader(files)
2734
raise "Please enter a valid file name" unless valid?(files)
28-
@items = create_item_repository(files)
29-
@merchants = create_merchants_repository(files)
30-
@invoices = create_invoices_repository(files)
31-
@invoice_items = create_invoice_item_repository(files)
32-
@transactions = create_transaction_repository(files)
33-
@customers = create_customer_repository(files)
35+
@items = create_item_repo(files) if files[:items]
36+
@invoices = create_invoices_repo(files) if files[:invoices]
37+
@invoice_items = create_invoice_item_repo(files) if files[:invoice_items]
38+
@transactions = create_transaction_repo(files) if files[:transactions]
39+
@customers = create_customer_repo(files) if files[:customers]
40+
@merchants = create_merchants_repo(files) if files[:merchants]
3441
end
3542

3643
def self.from_csv(files)
@@ -39,7 +46,6 @@ def self.from_csv(files)
3946

4047
def valid?(paths)
4148
paths.values.all? do |path|
42-
#binding.pry
4349
File.exist?(path)
4450
end
4551
end

‎lib/sales_engine_create.rb

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
11
#Collection of methods used for Sales Engine repository creation
22
module SalesEngineCreate
33

4-
def create_item_repository(files)
4+
def create_item_repo(files)
55
if files.include?(:items)
66
ItemRepository.new(files[:items], self)
77
end
88
end
99

10-
def create_merchants_repository(files)
10+
def create_merchants_repo(files)
1111
if files.include?(:merchants)
1212
MerchantRepository.new(files[:merchants], self)
1313
end
1414
end
1515

16-
def create_invoices_repository(files)
16+
def create_invoices_repo(files)
1717
if files.include?(:invoices)
1818
InvoiceRepository.new(files[:invoices], self)
1919
end
2020
end
2121

22-
def create_invoice_item_repository(files)
22+
def create_invoice_item_repo(files)
2323
if files.include?(:invoice_items)
2424
InvoiceItemRepository.new(files[:invoice_items], self)
2525
end
2626
end
2727

28-
def create_transaction_repository(files)
28+
def create_transaction_repo(files)
2929
if files.include?(:transactions)
3030
TransactionRepository.new(files[:transactions], self)
3131
end
3232
end
3333

34-
def create_customer_repository(files)
34+
def create_customer_repo(files)
3535
if files.include?(:customers)
3636
CustomerRepository.new(files[:customers], self)
3737
end

‎test/invoice_analyst_test.rb

-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
require_relative 'test_helper'
22
require './lib/sales_analyst'
33
require './lib/sales_engine'
4-
require 'pry'
5-
64

75
class InvoiceAnalystTest < MiniTest::Test
86

‎test/sales_engine_test.rb

+14-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
require_relative 'test_helper'
22
require './lib/sales_engine'
33

4-
54
class SalesEngineTest < Minitest::Test
65

76
attr_reader :se,
8-
:test_magic_file_list
7+
:test_magic_file_list,
8+
:one_test_file
99

1010
def setup
1111
test_file_list = {:merchants => "./data/merchants_fixture.csv",
@@ -19,7 +19,8 @@ def setup
1919
:invoices => "./data/invoices_magic.csv",
2020
:invoice_items => "./data/invoice_items_magic.csv",
2121
:transactions => "./data/transactions_magic.csv",
22-
:customers => "./data/customers_magic.csv"}
22+
:customers => "./data/customers_magic.csv"}
23+
@one_test_file = {:merchants => "./data/merchants_fixture.csv"}
2324
@se = SalesEngine.from_csv(test_file_list)
2425
end
2526

@@ -29,6 +30,16 @@ def test_with_non_existing_csv
2930
end
3031
end
3132

33+
def test_updating_single_repository
34+
test_object_id_before = se.object_id
35+
test_merchants_repo_object_id_before = se.merchants.object_id
36+
test_items_repo_object_id_before = se.items.object_id
37+
se.from_csv(one_test_file)
38+
assert_equal test_object_id_before, se.object_id
39+
refute test_merchants_repo_object_id_before == se.merchants.object_id
40+
assert_equal test_items_repo_object_id_before, se.items.object_id
41+
end
42+
3243
def test_merchant_repository_exists
3344
assert se.merchants
3445
end

‎test/transaction_test.rb

-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
require 'minitest/autorun'
44
require './lib/transaction'
55

6-
require 'pry'
7-
86
class TransactionTest < MiniTest::Test
97

108
attr_reader :transaction_info,

‎visualization/.DS_Store

6 KB
Binary file not shown.

0 commit comments

Comments
 (0)