cassie 1.0.0.alpha.8 → 1.0.0.alpha.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 450a7f1a1ec5459de472ddf5750228bb7eb9df63
4
- data.tar.gz: b862eaf4d1296222e959a9b84b970596b9cc0929
3
+ metadata.gz: d4f358a5c9aa4f3af968d60e8a2774d26a034eb7
4
+ data.tar.gz: 4b8e0a4bf0a6a7f9c4d1befaa360e0d1e2305c2e
5
5
  SHA512:
6
- metadata.gz: 25e9958807ff35ab5f73c1df02ced466f1a38307f75b0e841da7534b53f4aadd995d65025be535a7009ad8410e7b6fce9e93ede5e7e063f0a2a19acbf7a0259d
7
- data.tar.gz: 781b06792836e90b60c122eebf58f66e41df59a9667a16c8bd971fd9e4bc03b926f1de44169b32985f531b90f3c7c946a6d97e7e5851a1714e5f483117f17be4
6
+ metadata.gz: 88e76c3a5d635b6c82655e63fcc6d99bdfcfb461bfe151cbf2375535d126e3268d7f33d1260def101d3fe3a076c4d720338b94e25231ea494eb781af2e9f97fa
7
+ data.tar.gz: 9cfa13abf740a4ccbbccda4e54e63fd8dadecd29fc4d8cf7b71ed91cbf955a7d7a27aea0bf1d94f8288e8bbf9f20b3d089309e619699c540f61f55e394227d63
@@ -0,0 +1,17 @@
1
+ module Cassie::Testing::Fake
2
+ class ExecutionInfo
3
+ attr_reader :statement
4
+
5
+ def initialize(statement)
6
+ @statement = statement
7
+ end
8
+
9
+ def bind(params)
10
+ statement
11
+ end
12
+
13
+ def trace
14
+ nil
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ module Cassie::Testing::Fake
2
+ class PreparedStatement
3
+ attr_reader :statement
4
+
5
+ def initialize(statement)
6
+ @statement = statement
7
+ end
8
+
9
+ def bind(params)
10
+ statement
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,28 @@
1
+ require_relative 'session'
2
+
3
+ module Cassie::Testing::Fake
4
+ module Query
5
+ def self.extended(extender)
6
+ return if extender.class === Class
7
+
8
+ # object has been extended (as opposed to class)
9
+ # memoize the fake session in metaclass for this object
10
+ # as we don't want to change behavior of _every_ object
11
+ # instantiated from the class, only _this_ object
12
+ extender.class.define_singleton_method(:session) do
13
+ @session ||= Session.new
14
+ end
15
+
16
+ # overwrite definition from extension
17
+ # to delegate to class definition to
18
+ # minimize difference from vanilla Query
19
+ def extender.session
20
+ self.class.session
21
+ end
22
+ end
23
+
24
+ def session
25
+ @session ||= Session.new
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,24 @@
1
+ require_relative 'execution_info'
2
+
3
+ module Cassie::Testing::Fake
4
+ class Result
5
+ attr_accessor :rows, :statement
6
+
7
+ def initialize(statement, opts={})
8
+ @statement = statement
9
+ @rows = opts[:rows]
10
+ end
11
+
12
+ def execution_info
13
+ ExecutionInfo.new(statement)
14
+ end
15
+
16
+ def rows
17
+ @rows || []
18
+ end
19
+
20
+ def empty?
21
+ rows.empty?
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,18 @@
1
+ require_relative 'result'
2
+ require_relative 'prepared_statement'
3
+
4
+ module Cassie::Testing::Fake
5
+ class Session
6
+ attr_reader :last_statement
7
+ attr_accessor :rows
8
+
9
+ def execute(statement, *args)
10
+ @last_statement = statement
11
+ Result.new(statement, rows: rows)
12
+ end
13
+
14
+ def prepare(statement)
15
+ PreparedStatement.new(statement)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ module Cassie
2
+ module Testing
3
+ require_relative 'testing/fake/query'
4
+ end
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cassie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.alpha.8
4
+ version: 1.0.0.alpha.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Prothro
@@ -132,7 +132,12 @@ files:
132
132
  - lib/cassie/queries/statement/selection.rb
133
133
  - lib/cassie/queries/statement/updating.rb
134
134
  - lib/cassie/query.rb
135
- - lib/cassie/testing/cassandra_fake.rb
135
+ - lib/cassie/testing.rb
136
+ - lib/cassie/testing/fake/execution_info.rb
137
+ - lib/cassie/testing/fake/prepared_statement.rb
138
+ - lib/cassie/testing/fake/query.rb
139
+ - lib/cassie/testing/fake/result.rb
140
+ - lib/cassie/testing/fake/session.rb
136
141
  homepage: https://github.com/eprothro/cassie
137
142
  licenses:
138
143
  - MIT
@@ -1,65 +0,0 @@
1
- #TODO: think about a better test harness approach
2
- module CassandraFake
3
- class PreparedStatement
4
- attr_reader :statement
5
-
6
- def initialize(statement)
7
- @statement = statement
8
- end
9
-
10
- def bind(params)
11
- statement
12
- end
13
- end
14
-
15
- class ExecutionInfo
16
- attr_reader :statement
17
-
18
- def initialize(statement)
19
- @statement = statement
20
- end
21
-
22
- def bind(params)
23
- statement
24
- end
25
-
26
- def trace
27
- nil
28
- end
29
- end
30
-
31
- class Result
32
- attr_accessor :rows, :statement
33
-
34
- def initialize(statement, opts={})
35
- @statement = statement
36
- @rows = opts[:rows]
37
- end
38
-
39
- def execution_info
40
- ExecutionInfo.new(statement)
41
- end
42
-
43
- def rows
44
- @rows || []
45
- end
46
-
47
- def empty?
48
- rows.empty?
49
- end
50
- end
51
-
52
- class Session
53
- attr_reader :last_statement
54
- attr_accessor :rows
55
-
56
- def execute(statement, *args)
57
- @last_statement = statement
58
- Result.new(statement, rows: rows)
59
- end
60
-
61
- def prepare(statement)
62
- PreparedStatement.new(statement)
63
- end
64
- end
65
- end