cb_nitride 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +14 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +10 -0
- data/cb_nitride.gemspec +23 -0
- data/lib/cb_nitride/category_sorter.rb +70 -0
- data/lib/cb_nitride/configuration.rb +15 -0
- data/lib/cb_nitride/diamond_item.rb +95 -0
- data/lib/cb_nitride/diamond_login.rb +45 -0
- data/lib/cb_nitride/diamond_number_generator.rb +52 -0
- data/lib/cb_nitride/exceptions.rb +3 -0
- data/lib/cb_nitride/hasher_methods.rb +20 -0
- data/lib/cb_nitride/module_methods.rb +17 -0
- data/lib/cb_nitride/private_hasher.rb +72 -0
- data/lib/cb_nitride/public_hasher.rb +83 -0
- data/lib/cb_nitride/version.rb +3 -0
- data/lib/cb_nitride.rb +43 -0
- data/test/cassettes/test_that_it_can_log_in_cassette.yml +880 -0
- data/test/cassettes/test_that_it_fails_with_bad_information_cassette.yml +294 -0
- data/test/cassettes/test_that_it_resets_the_agent_cassette.yml +2188 -0
- data/test/cassettes/test_that_the_private_diamond_item_contains_the_right_fields_cassette.yml +660 -0
- data/test/cassettes/test_that_the_private_hash_contains_the_right_fields_cassette.yml +708 -0
- data/test/cassettes/test_that_the_private_hash_identifies_collection_cassette.yml +714 -0
- data/test/cassettes/test_that_the_private_hash_identifies_invalid_diamond_codes_cassette.yml +636 -0
- data/test/cassettes/test_that_the_private_hash_identifies_issues_cassette.yml +707 -0
- data/test/cassettes/test_that_the_private_hash_identifies_merchandise_cassette.yml +705 -0
- data/test/cassettes/test_that_the_private_hash_identifies_variants_cassette.yml +708 -0
- data/test/cassettes/test_that_the_private_hash_produces_a_diamond_item_cassette.yml +660 -0
- data/test/cassettes/test_that_the_public_diamond_item_contains_the_right_fields_cassette.yml +196 -0
- data/test/cassettes/test_that_the_public_hash_contains_the_right_fields_cassette.yml +208 -0
- data/test/cassettes/test_that_the_public_hash_identifies_collection_cassette.yml +212 -0
- data/test/cassettes/test_that_the_public_hash_identifies_invalid_diamond_codes_cassette.yml +570 -0
- data/test/cassettes/test_that_the_public_hash_identifies_issues_cassette.yml +208 -0
- data/test/cassettes/test_that_the_public_hash_identifies_merchandise_cassette.yml +207 -0
- data/test/cassettes/test_that_the_public_hash_identifies_variants_cassette.yml +209 -0
- data/test/cassettes/test_that_the_public_hash_produces_a_diamond_item_cassette.yml +599 -0
- data/test/test_helper.rb +67 -0
- data/test/unit/configuration_test.rb +19 -0
- data/test/unit/diamond_item_test.rb +42 -0
- data/test/unit/diamond_login_test.rb +42 -0
- data/test/unit/private_hasher_test.rb +67 -0
- data/test/unit/public_hasher_test.rb +59 -0
- data/test/unit/pull_test.rb +8 -0
- metadata +142 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class ConfigurationTest < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
CbNitride.configure do |c|
|
7
|
+
c.username = "username"
|
8
|
+
c.password = "password"
|
9
|
+
c.account_number = "12345"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_configuration_settings
|
14
|
+
assert_equal CbNitride.username, "username"
|
15
|
+
assert_equal CbNitride.password, "password"
|
16
|
+
assert_equal CbNitride.account_number, "12345"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class DiamondItemTest < MiniTest::Unit::TestCase
|
4
|
+
def ideal_collection
|
5
|
+
@_ideal_collection ||= CbNitride::DiamondItem.new(
|
6
|
+
{
|
7
|
+
category_code: "3",
|
8
|
+
title: "BATTLING BOY HC GN"
|
9
|
+
}).product_type?
|
10
|
+
end
|
11
|
+
def ideal_merchandise
|
12
|
+
@_ideal_merchandise ||= CbNitride::DiamondItem.new(
|
13
|
+
{
|
14
|
+
category_code: "16",
|
15
|
+
title: "ADV TIME MARCELINE NAME ONLY PX JRS RAGLAN LG (C: 0-1-0)"
|
16
|
+
}).product_type?
|
17
|
+
end
|
18
|
+
def ideal_variant
|
19
|
+
@_ideal_variant ||= CbNitride::DiamondItem.new(
|
20
|
+
{
|
21
|
+
category_code: "1",
|
22
|
+
title: "SANDMAN OVERTURE #1 (OF 6) CVR B (MR)"
|
23
|
+
}).product_type?
|
24
|
+
end
|
25
|
+
def ideal_issue
|
26
|
+
@_ideal_issue ||= CbNitride::DiamondItem.new(
|
27
|
+
{
|
28
|
+
category_code: "1",
|
29
|
+
title: "SANDMAN OVERTURE #1 (OF 6) CVR A (MR)"
|
30
|
+
}).product_type?
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_that_they_are_the_right_items
|
34
|
+
assert_equal :issue, ideal_issue
|
35
|
+
assert_equal :variant, ideal_variant
|
36
|
+
assert_equal :collection, ideal_collection
|
37
|
+
assert_equal :merchandise, ideal_merchandise
|
38
|
+
end
|
39
|
+
|
40
|
+
#TODO Test for Correct Creator filtering, consider moving ideal objects to module
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class DiamondLoginTest < MiniTest::Unit::TestCase
|
4
|
+
include LoginInformation
|
5
|
+
include Recordable
|
6
|
+
|
7
|
+
def test_that_it_can_log_in
|
8
|
+
setup_vcr
|
9
|
+
set_login_data
|
10
|
+
|
11
|
+
da = CbNitride::DiamondLogin.agent
|
12
|
+
da.get(CbNitride::DiamondLogin::HOME_URL)
|
13
|
+
url = da.page.uri.to_s
|
14
|
+
assert_equal url, CbNitride::DiamondLogin::HOME_URL
|
15
|
+
|
16
|
+
clear_vcr
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_that_it_fails_with_bad_information
|
20
|
+
setup_vcr
|
21
|
+
clear_login_data
|
22
|
+
|
23
|
+
assert_raises CbNitride::InvalidLoginError do
|
24
|
+
CbNitride::DiamondLogin.agent
|
25
|
+
end
|
26
|
+
|
27
|
+
clear_vcr
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_that_it_resets_the_agent
|
31
|
+
setup_vcr
|
32
|
+
set_login_data
|
33
|
+
|
34
|
+
a = CbNitride::DiamondLogin.new
|
35
|
+
a.login
|
36
|
+
first_agent = a.agent
|
37
|
+
a.reset_agent
|
38
|
+
refute_equal a.agent, first_agent
|
39
|
+
|
40
|
+
clear_vcr
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class PrivateHasherTest < MiniTest::Unit::TestCase
|
4
|
+
include LoginInformation
|
5
|
+
include Recordable
|
6
|
+
include CategoryCodes
|
7
|
+
include HasherTests
|
8
|
+
|
9
|
+
def setup_object(code)
|
10
|
+
setup_vcr
|
11
|
+
@item = CbNitride::PrivateHasher.item(code)
|
12
|
+
clear_vcr
|
13
|
+
end
|
14
|
+
|
15
|
+
def setup
|
16
|
+
set_login_data
|
17
|
+
end
|
18
|
+
|
19
|
+
def teardown
|
20
|
+
clear_login_data
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_that_the_private_hash_produces_a_diamond_item
|
24
|
+
setup_object(ISSUE_CODE)
|
25
|
+
assert_equal @item.class, CbNitride::DiamondItem
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_that_the_private_diamond_item_contains_the_right_fields
|
29
|
+
setup_object(ISSUE_CODE)
|
30
|
+
refute_equal @item.title, "Pug Party Parade"
|
31
|
+
assert_equal @item.stock_number, "STK611169"
|
32
|
+
assert_equal @item.diamond_number, ISSUE_CODE
|
33
|
+
assert_equal @item.image_url, "https://retailerservices.diamondcomics.com/Image/Display?pd=webdata/catalogimages/STK_IMAGES_THUMBNAIL/STK600001-620000&pf=STK611169_TN.jpg"
|
34
|
+
assert_equal @item.publisher, "DC COMICS"
|
35
|
+
assert_equal @item.creators, "(W) Jeff Lemire (A/CA) Andrea Sorrentino"
|
36
|
+
assert_equal @item.description, "Ollie returns to the island where he first became Green Arrow and learns some hard truths about his father and the mysterious Outsiders!"
|
37
|
+
assert_equal @item.release_date.to_s, "2013-06-05"
|
38
|
+
assert_equal @item.price, 2.99
|
39
|
+
assert_equal @item.state, :private
|
40
|
+
assert_equal @item.category_code, "1"
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_that_the_private_hash_identifies_issues
|
44
|
+
setup_object(ISSUE_CODE)
|
45
|
+
assert_equal @item.category_code, ISSUE_CATEGORY_CODE
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_that_the_private_hash_identifies_variants
|
49
|
+
setup_object(VARIANT_CODE)
|
50
|
+
assert_equal @item.category_code, ISSUE_CATEGORY_CODE
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_that_the_private_hash_identifies_merchandise
|
54
|
+
setup_object(MERCH_CODE)
|
55
|
+
assert_includes MERCHANDISE_CATEGORY_CODES, @item.category_code
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_that_the_private_hash_identifies_collection
|
59
|
+
setup_object(COLLECTION_CODE)
|
60
|
+
assert_equal @item.category_code, COLLECTION_CATEGORY_CODE
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_that_the_private_hash_identifies_invalid_diamond_codes
|
64
|
+
setup_object("FEB1099999")
|
65
|
+
assert_equal @item, nil
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class PublicHasherTest < MiniTest::Unit::TestCase
|
4
|
+
include Recordable
|
5
|
+
include HasherTests
|
6
|
+
include CategoryCodes
|
7
|
+
|
8
|
+
def setup_object(code)
|
9
|
+
setup_vcr
|
10
|
+
@item = CbNitride::PublicHasher.item(code)
|
11
|
+
clear_vcr
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_that_the_public_hash_produces_a_diamond_item
|
15
|
+
setup_object(ISSUE_CODE)
|
16
|
+
assert_equal @item.class, CbNitride::DiamondItem
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_that_the_public_diamond_item_contains_the_right_fields
|
20
|
+
setup_object(ISSUE_CODE)
|
21
|
+
refute_equal @item.title, "Pug Party Parade"
|
22
|
+
assert_equal @item.stock_number, "STK611169"
|
23
|
+
assert_equal @item.diamond_number, ISSUE_CODE
|
24
|
+
assert_equal @item.image_url, "http://www.previewsworld.com/catalogimages/STK_IMAGES/STK600001-620000/STK611169.jpg"
|
25
|
+
assert_equal @item.publisher, "DC COMICS"
|
26
|
+
assert_equal @item.creators, "(W) Jeff Lemire (A/CA) Andrea Sorrentino"
|
27
|
+
assert_equal @item.description, "Ollie returns to the island where he first became Green Arrow and learns some hard truths about his father and the mysterious Outsiders!"
|
28
|
+
assert_equal @item.release_date.to_s, "2013-06-05"
|
29
|
+
assert_equal @item.price, 2.99
|
30
|
+
assert_equal @item.state, :public
|
31
|
+
assert_equal @item.category_code, "1"
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_that_the_public_hash_identifies_issues
|
35
|
+
setup_object(ISSUE_CODE)
|
36
|
+
assert_equal @item.category_code, ISSUE_CATEGORY_CODE
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_that_the_public_hash_identifies_variants
|
40
|
+
setup_object(VARIANT_CODE)
|
41
|
+
assert_equal @item.category_code, ISSUE_CATEGORY_CODE
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_that_the_public_hash_identifies_merchandise
|
45
|
+
setup_object(MERCH_CODE)
|
46
|
+
assert_includes MERCHANDISE_CATEGORY_CODES, @item.category_code
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_that_the_public_hash_identifies_collection
|
50
|
+
setup_object(COLLECTION_CODE)
|
51
|
+
assert_equal @item.category_code, COLLECTION_CATEGORY_CODE
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_that_the_public_hash_identifies_invalid_diamond_codes
|
55
|
+
setup_object("FEB1099999")
|
56
|
+
assert_equal @item, nil
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
metadata
ADDED
@@ -0,0 +1,142 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cb_nitride
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.5
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alex Jarvis
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-07-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: A Gem for accessing information from the diamond comics backend.
|
42
|
+
email:
|
43
|
+
- alxjrvs@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- .gitignore
|
49
|
+
- Gemfile
|
50
|
+
- LICENSE.txt
|
51
|
+
- README.md
|
52
|
+
- Rakefile
|
53
|
+
- cb_nitride.gemspec
|
54
|
+
- lib/cb_nitride.rb
|
55
|
+
- lib/cb_nitride/category_sorter.rb
|
56
|
+
- lib/cb_nitride/configuration.rb
|
57
|
+
- lib/cb_nitride/diamond_item.rb
|
58
|
+
- lib/cb_nitride/diamond_login.rb
|
59
|
+
- lib/cb_nitride/diamond_number_generator.rb
|
60
|
+
- lib/cb_nitride/exceptions.rb
|
61
|
+
- lib/cb_nitride/hasher_methods.rb
|
62
|
+
- lib/cb_nitride/module_methods.rb
|
63
|
+
- lib/cb_nitride/private_hasher.rb
|
64
|
+
- lib/cb_nitride/public_hasher.rb
|
65
|
+
- lib/cb_nitride/version.rb
|
66
|
+
- test/cassettes/test_that_it_can_log_in_cassette.yml
|
67
|
+
- test/cassettes/test_that_it_fails_with_bad_information_cassette.yml
|
68
|
+
- test/cassettes/test_that_it_resets_the_agent_cassette.yml
|
69
|
+
- test/cassettes/test_that_the_private_diamond_item_contains_the_right_fields_cassette.yml
|
70
|
+
- test/cassettes/test_that_the_private_hash_contains_the_right_fields_cassette.yml
|
71
|
+
- test/cassettes/test_that_the_private_hash_identifies_collection_cassette.yml
|
72
|
+
- test/cassettes/test_that_the_private_hash_identifies_invalid_diamond_codes_cassette.yml
|
73
|
+
- test/cassettes/test_that_the_private_hash_identifies_issues_cassette.yml
|
74
|
+
- test/cassettes/test_that_the_private_hash_identifies_merchandise_cassette.yml
|
75
|
+
- test/cassettes/test_that_the_private_hash_identifies_variants_cassette.yml
|
76
|
+
- test/cassettes/test_that_the_private_hash_produces_a_diamond_item_cassette.yml
|
77
|
+
- test/cassettes/test_that_the_public_diamond_item_contains_the_right_fields_cassette.yml
|
78
|
+
- test/cassettes/test_that_the_public_hash_contains_the_right_fields_cassette.yml
|
79
|
+
- test/cassettes/test_that_the_public_hash_identifies_collection_cassette.yml
|
80
|
+
- test/cassettes/test_that_the_public_hash_identifies_invalid_diamond_codes_cassette.yml
|
81
|
+
- test/cassettes/test_that_the_public_hash_identifies_issues_cassette.yml
|
82
|
+
- test/cassettes/test_that_the_public_hash_identifies_merchandise_cassette.yml
|
83
|
+
- test/cassettes/test_that_the_public_hash_identifies_variants_cassette.yml
|
84
|
+
- test/cassettes/test_that_the_public_hash_produces_a_diamond_item_cassette.yml
|
85
|
+
- test/test_helper.rb
|
86
|
+
- test/unit/configuration_test.rb
|
87
|
+
- test/unit/diamond_item_test.rb
|
88
|
+
- test/unit/diamond_login_test.rb
|
89
|
+
- test/unit/private_hasher_test.rb
|
90
|
+
- test/unit/public_hasher_test.rb
|
91
|
+
- test/unit/pull_test.rb
|
92
|
+
homepage: ''
|
93
|
+
licenses:
|
94
|
+
- MIT
|
95
|
+
metadata: {}
|
96
|
+
post_install_message:
|
97
|
+
rdoc_options: []
|
98
|
+
require_paths:
|
99
|
+
- lib
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
requirements: []
|
111
|
+
rubyforge_project:
|
112
|
+
rubygems_version: 2.0.0
|
113
|
+
signing_key:
|
114
|
+
specification_version: 4
|
115
|
+
summary: Only useable with a qualified Diamond Comic Retailer!
|
116
|
+
test_files:
|
117
|
+
- test/cassettes/test_that_it_can_log_in_cassette.yml
|
118
|
+
- test/cassettes/test_that_it_fails_with_bad_information_cassette.yml
|
119
|
+
- test/cassettes/test_that_it_resets_the_agent_cassette.yml
|
120
|
+
- test/cassettes/test_that_the_private_diamond_item_contains_the_right_fields_cassette.yml
|
121
|
+
- test/cassettes/test_that_the_private_hash_contains_the_right_fields_cassette.yml
|
122
|
+
- test/cassettes/test_that_the_private_hash_identifies_collection_cassette.yml
|
123
|
+
- test/cassettes/test_that_the_private_hash_identifies_invalid_diamond_codes_cassette.yml
|
124
|
+
- test/cassettes/test_that_the_private_hash_identifies_issues_cassette.yml
|
125
|
+
- test/cassettes/test_that_the_private_hash_identifies_merchandise_cassette.yml
|
126
|
+
- test/cassettes/test_that_the_private_hash_identifies_variants_cassette.yml
|
127
|
+
- test/cassettes/test_that_the_private_hash_produces_a_diamond_item_cassette.yml
|
128
|
+
- test/cassettes/test_that_the_public_diamond_item_contains_the_right_fields_cassette.yml
|
129
|
+
- test/cassettes/test_that_the_public_hash_contains_the_right_fields_cassette.yml
|
130
|
+
- test/cassettes/test_that_the_public_hash_identifies_collection_cassette.yml
|
131
|
+
- test/cassettes/test_that_the_public_hash_identifies_invalid_diamond_codes_cassette.yml
|
132
|
+
- test/cassettes/test_that_the_public_hash_identifies_issues_cassette.yml
|
133
|
+
- test/cassettes/test_that_the_public_hash_identifies_merchandise_cassette.yml
|
134
|
+
- test/cassettes/test_that_the_public_hash_identifies_variants_cassette.yml
|
135
|
+
- test/cassettes/test_that_the_public_hash_produces_a_diamond_item_cassette.yml
|
136
|
+
- test/test_helper.rb
|
137
|
+
- test/unit/configuration_test.rb
|
138
|
+
- test/unit/diamond_item_test.rb
|
139
|
+
- test/unit/diamond_login_test.rb
|
140
|
+
- test/unit/private_hasher_test.rb
|
141
|
+
- test/unit/public_hasher_test.rb
|
142
|
+
- test/unit/pull_test.rb
|