spanner/spec/spanner_sequence_spec.rb (98 lines of code) (raw):

# Copyright 2023 Google, Inc # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require_relative "./spec_helper" require_relative "./spanner_postgresql_helper" require_relative "../spanner_create_sequence" require_relative "../spanner_alter_sequence" require_relative "../spanner_drop_sequence" require_relative "../spanner_postgresql_create_sequence" require_relative "../spanner_postgresql_alter_sequence" require_relative "../spanner_postgresql_drop_sequence" describe "Google Cloud Spanner Sequence examples" do before :all do @seq_database_id = @database_id+"seq" create_test_database @seq_database_id end after :all do test_database = @instance.database @seq_database_id test_database&.drop end example "spanner_create_sequence" do capture do spanner_create_sequence project_id: @project_id, instance_id: @instance_id, database_id: @seq_database_id end expect(captured_output).to include \ "Created Seq sequence and Customers table, where the key column CustomerId uses the sequence as a default value" end example "spanner_alter_sequence" do spanner_create_sequence project_id: @project_id, instance_id: @instance_id, database_id: @seq_database_id capture do spanner_alter_sequence project_id: @project_id, instance_id: @instance_id, database_id: @seq_database_id end expect(captured_output).to include \ "Altered Seq sequence to skip an inclusive range between 1000 and 5000000" spanner_drop_sequence project_id: @project_id, instance_id: @instance_id, database_id: @seq_database_id end example "spanner_alter_sequence 2" do spanner_create_sequence project_id: @project_id, instance_id: @instance_id, database_id: @seq_database_id capture do spanner_drop_sequence project_id: @project_id, instance_id: @instance_id, database_id: @seq_database_id end expect(captured_output).to include \ "Altered Customers table to drop DEFAULT from CustomerId column and dropped the Seq sequence" end end describe "Google Cloud Spanner Sequence examples for postgresql" do before :all do create_spangres_singers_albums_database end after :all do cleanup_database_resources end example "spanner_postgresql_create_sequence" do capture do spanner_postgresql_create_sequence project_id: @project_id, instance_id: @instance_id, database_id: @database_id end expect(captured_output).to include \ "Created Seq sequence and Customers table, where its key column CustomerId uses the sequence as a default value" end example "spanner_postgresql_alter_sequence" do spanner_postgresql_create_sequence project_id: @project_id, instance_id: @instance_id, database_id: @database_id capture do spanner_postgresql_alter_sequence project_id: @project_id, instance_id: @instance_id, database_id: @database_id end expect(captured_output).to include \ "Altered Seq sequence to skip an inclusive range between 1000 and 5000000" spanner_postgresql_drop_sequence project_id: @project_id, instance_id: @instance_id, database_id: @database_id end example "spanner_postgresql_alter_sequence 2" do spanner_postgresql_create_sequence project_id: @project_id, instance_id: @instance_id, database_id: @database_id capture do spanner_postgresql_drop_sequence project_id: @project_id, instance_id: @instance_id, database_id: @database_id end expect(captured_output).to include \ "Altered Customers table to drop DEFAULT from CustomerId column and dropped the Seq sequence" end end