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

Sign up to get free protection for your applications and to get access to all the features.
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