From 2674f1cdf5160100ec7630c3a4649d1255de8076 Mon Sep 17 00:00:00 2001 From: Kinjalkumar Patel Date: Tue, 22 Nov 2022 20:16:14 +0530 Subject: [PATCH 1/2] testkit backend implementation --- .../testkit/backend/custom_driver_error.rb | 9 ++++++ .../backend/messages/abstract_result_next.rb | 8 +++++ .../requests/bookmark_manager_close.rb | 13 +++++++++ .../requests/bookmarks_supplier_completed.rb | 10 +++++++ .../messages/requests/cypher_type_field.rb | 13 +++++++++ .../reactive_transaction_context_adapter.rb | 29 +++++++++++++++++++ ...ive_transaction_context_streams_adapter.rb | 29 +++++++++++++++++++ 7 files changed, 111 insertions(+) create mode 100644 testkit-backend/lib/testkit/backend/custom_driver_error.rb create mode 100644 testkit-backend/lib/testkit/backend/messages/abstract_result_next.rb create mode 100644 testkit-backend/lib/testkit/backend/messages/requests/bookmark_manager_close.rb create mode 100644 testkit-backend/lib/testkit/backend/messages/requests/bookmarks_supplier_completed.rb create mode 100644 testkit-backend/lib/testkit/backend/messages/requests/cypher_type_field.rb create mode 100644 testkit-backend/lib/testkit/backend/reactive_transaction_context_adapter.rb create mode 100644 testkit-backend/lib/testkit/backend/reactive_transaction_context_streams_adapter.rb diff --git a/testkit-backend/lib/testkit/backend/custom_driver_error.rb b/testkit-backend/lib/testkit/backend/custom_driver_error.rb new file mode 100644 index 00000000..e489fa36 --- /dev/null +++ b/testkit-backend/lib/testkit/backend/custom_driver_error.rb @@ -0,0 +1,9 @@ +module Testkit + module Backend + class CustomDriverError < RuntimeError + def initialize(cause) + super + end + end + end +end diff --git a/testkit-backend/lib/testkit/backend/messages/abstract_result_next.rb b/testkit-backend/lib/testkit/backend/messages/abstract_result_next.rb new file mode 100644 index 00000000..234d1650 --- /dev/null +++ b/testkit-backend/lib/testkit/backend/messages/abstract_result_next.rb @@ -0,0 +1,8 @@ +module Testkit::Backend::Messages + class AbstractResultNext < Request + def process + result = fetch(result_id) + result.has_next? ? named_entity('Record', values: result.peek.values.map(&method(:to_testkit))) : named_entity('NullRecord') + end + end +end diff --git a/testkit-backend/lib/testkit/backend/messages/requests/bookmark_manager_close.rb b/testkit-backend/lib/testkit/backend/messages/requests/bookmark_manager_close.rb new file mode 100644 index 00000000..fb1342b0 --- /dev/null +++ b/testkit-backend/lib/testkit/backend/messages/requests/bookmark_manager_close.rb @@ -0,0 +1,13 @@ +module Testkit::Backend::Messages + module Requests + class BookmarkManagerClose < Request + def process + reference('BookmarkManager') + end + + def to_object + delete(id).tap(&:close) + end + end + end +end diff --git a/testkit-backend/lib/testkit/backend/messages/requests/bookmarks_supplier_completed.rb b/testkit-backend/lib/testkit/backend/messages/requests/bookmarks_supplier_completed.rb new file mode 100644 index 00000000..563cf3c0 --- /dev/null +++ b/testkit-backend/lib/testkit/backend/messages/requests/bookmarks_supplier_completed.rb @@ -0,0 +1,10 @@ +module Testkit::Backend::Messages + module Requests + class BookmarksSupplierCompleted < Request + def process + bookmarks = fetch(request_id).bookmarks + named_entity('BookmarksSupplierRequest', id: bookmarks.id, bookmarkManagerId: bookmarks.bookmark_manager_id, database: bookmarks.database) + end + end + end +end diff --git a/testkit-backend/lib/testkit/backend/messages/requests/cypher_type_field.rb b/testkit-backend/lib/testkit/backend/messages/requests/cypher_type_field.rb new file mode 100644 index 00000000..2414089a --- /dev/null +++ b/testkit-backend/lib/testkit/backend/messages/requests/cypher_type_field.rb @@ -0,0 +1,13 @@ +module Testkit::Backend::Messages + module Requests + class CypherTypeField < AbstractResultNext + def process + reference('BookmarkManager') + end + + def to_object + delete(id).tap(&:close) + end + end + end +end diff --git a/testkit-backend/lib/testkit/backend/reactive_transaction_context_adapter.rb b/testkit-backend/lib/testkit/backend/reactive_transaction_context_adapter.rb new file mode 100644 index 00000000..d0296b9d --- /dev/null +++ b/testkit-backend/lib/testkit/backend/reactive_transaction_context_adapter.rb @@ -0,0 +1,29 @@ +module Testkit + module Backend + class ReactiveTransactionContextAdapter + def initialize(delegate) + @delegate = delegate + end + + def run(query, parameters = {}) + parameters.present? ? @delegate.run(query, parameters) : @delegate.run(query) + end + + def commit + raise java.lang.UnsupportedOperationException, "commit is not allowed on transaction context" + end + + def roll_back + raise java.lang.UnsupportedOperationException, "roll_back is not allowed on transaction context" + end + + def close + raise java.lang.UnsupportedOperationException, "close is not allowed on transaction context" + end + + def open? + raise java.lang.UnsupportedOperationException, "open? is not allowed on transaction context" + end + end + end +end diff --git a/testkit-backend/lib/testkit/backend/reactive_transaction_context_streams_adapter.rb b/testkit-backend/lib/testkit/backend/reactive_transaction_context_streams_adapter.rb new file mode 100644 index 00000000..0e1f5da1 --- /dev/null +++ b/testkit-backend/lib/testkit/backend/reactive_transaction_context_streams_adapter.rb @@ -0,0 +1,29 @@ +module Testkit + module Backend + class ReactiveTransactionContextStreamsAdapter + def initialize(delegate) + @delegate = delegate + end + + def run(query, parameters = {}) + parameters.present? ? @delegate.run(query, parameters) : @delegate.run(query) + end + + def commit + raise java.lang.UnsupportedOperationException, "commit is not allowed on transaction context" + end + + def roll_back + raise java.lang.UnsupportedOperationException, "roll_back is not allowed on transaction context" + end + + def close + raise java.lang.UnsupportedOperationException, "close is not allowed on transaction context" + end + + def open? + raise java.lang.UnsupportedOperationException, "open? is not allowed on transaction context" + end + end + end +end From f989bcaf6d068137298831b33814f44c8a4c57b2 Mon Sep 17 00:00:00 2001 From: Kinjalkumar Patel Date: Tue, 29 Nov 2022 20:06:22 +0530 Subject: [PATCH 2/2] testkit bookmarks --- .../messages/requests/new_bookmark_manager.rb | 15 +++++++++++++++ .../requests/testkit_bookmarks_consumer.rb | 9 +++++++++ .../requests/testkit_bookmarks_supplier.rb | 9 +++++++++ 3 files changed, 33 insertions(+) create mode 100644 testkit-backend/lib/testkit/backend/messages/requests/new_bookmark_manager.rb create mode 100644 testkit-backend/lib/testkit/backend/messages/requests/testkit_bookmarks_consumer.rb create mode 100644 testkit-backend/lib/testkit/backend/messages/requests/testkit_bookmarks_supplier.rb diff --git a/testkit-backend/lib/testkit/backend/messages/requests/new_bookmark_manager.rb b/testkit-backend/lib/testkit/backend/messages/requests/new_bookmark_manager.rb new file mode 100644 index 00000000..7477c5a3 --- /dev/null +++ b/testkit-backend/lib/testkit/backend/messages/requests/new_bookmark_manager.rb @@ -0,0 +1,15 @@ +module Testkit::Backend::Messages + module Requests + class NewBookmarkManager < Request + def process + reference('NewBookmarkManager') + end + + def to_object + fetch(id).bookmarks(initial_bookmarks: initial_bookmarks, + bookmarks_supplier_registered: bookmarks_supplier_registered, + bookmarks_consumer_registered:bookmarks_consumer_registered) + end + end + end +end diff --git a/testkit-backend/lib/testkit/backend/messages/requests/testkit_bookmarks_consumer.rb b/testkit-backend/lib/testkit/backend/messages/requests/testkit_bookmarks_consumer.rb new file mode 100644 index 00000000..723e96c8 --- /dev/null +++ b/testkit-backend/lib/testkit/backend/messages/requests/testkit_bookmarks_consumer.rb @@ -0,0 +1,9 @@ +module Testkit::Backend::Messages + module Requests + class TestkitBookmarksConsumer + def accept(database, bookmarks) + fetch(request_id).bookmarks(id: id, bookmark_manager_id: bookmark_manager_id, database: database) + end + end + end +end diff --git a/testkit-backend/lib/testkit/backend/messages/requests/testkit_bookmarks_supplier.rb b/testkit-backend/lib/testkit/backend/messages/requests/testkit_bookmarks_supplier.rb new file mode 100644 index 00000000..26541f7b --- /dev/null +++ b/testkit-backend/lib/testkit/backend/messages/requests/testkit_bookmarks_supplier.rb @@ -0,0 +1,9 @@ +module Testkit::Backend::Messages + module Requests + class TestkitBookmarksSupplier + def bookmarks_from_testkit(database) + fetch(request_id).bookmarks(id: id, bookmark_manager_id: bookmark_manager_id, database: database) + end + end + end +end