load_prompts.rb 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594
  1. #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  2. #
  3. # Copyright (c) 2016, Electric Power Research Institute (EPRI)
  4. # All rights reserved.
  5. #
  6. # OpenADR ("this software") is licensed under BSD 3-Clause license.
  7. #
  8. # Redistribution and use in source and binary forms, with or without modification,
  9. # are permitted provided that the following conditions are met:
  10. #
  11. # * Redistributions of source code must retain the above copyright notice, this
  12. # list of conditions and the following disclaimer.
  13. #
  14. # * Redistributions in binary form must reproduce the above copyright notice,
  15. # this list of conditions and the following disclaimer in the documentation
  16. # and/or other materials provided with the distribution.
  17. #
  18. # * Neither the name of EPRI nor the names of its contributors may
  19. # be used to endorse or promote products derived from this software without
  20. # specific prior written permission.
  21. #
  22. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  23. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  24. # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  25. # IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  26. # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  27. # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  28. # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  29. # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  30. # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
  31. # OF SUCH DAMAGE.
  32. #
  33. # This EPRI software incorporates work covered by the following copyright and permission
  34. # notices. You may not use these works except in compliance with their respective
  35. # licenses, which are provided below.
  36. #
  37. # These works are provided by the copyright holders and contributors "as is" and any express or
  38. # implied warranties, including, but not limited to, the implied warranties of merchantability
  39. # and fitness for a particular purpose are disclaimed.
  40. #
  41. #########################################################################################
  42. # MIT Licensed Libraries
  43. #########################################################################################
  44. #
  45. # * actionmailer 3.2.12 (http://www.rubyonrails.org) - Email composition, delivery, and receiving framework (part of Rails).
  46. # * actionpack 3.2.12 (http://www.rubyonrails.org) - Web-flow and rendering framework putting the VC in MVC (part of Rails).
  47. # * activemodel 3.2.12 (http://www.rubyonrails.org) - A toolkit for building modeling frameworks (part of Rails).
  48. # * activerecord 3.2.12 (http://www.rubyonrails.org) - Object-relational mapper framework (part of Rails).
  49. # * activeresource 3.2.12 (http://www.rubyonrails.org) - REST modeling framework (part of Rails).
  50. # * activesupport 3.2.12 (http://www.rubyonrails.org) - A toolkit of support libraries and Ruby core extensions extracted from the Rails framework.
  51. # * arel 3.0.2 (http://github.com/rails/arel) - Arel is a SQL AST manager for Ruby
  52. # * bootstrap-sass 3.1.1.0 (https://github.com/twbs/bootstrap-sass) - Twitter's Bootstrap, converted to Sass and ready to drop into Rails or Compass
  53. # * builder 3.0.4 (http://onestepback.org) - Builders for MarkUp.
  54. # * bundler 1.12.5 (http://bundler.io) - The best way to manage your application's dependencies
  55. # * capybara 2.4.4 (http://github.com/jnicklas/capybara) - Capybara aims to simplify the process of integration testing Rack applications, such as Rails, Sinatra or Merb
  56. # * coffee-rails 3.2.2 () - Coffee Script adapter for the Rails asset pipeline.
  57. # * coffee-script-source 1.6.3 (http://jashkenas.github.com/coffee-script/) - The CoffeeScript Compiler
  58. # * docile 1.1.5 (https://ms-ati.github.io/docile/) - Docile keeps your Ruby DSLs tame and well-behaved
  59. # * edn 1.0.0 () - 'edn implements a reader for Extensible Data Notation by Rich Hickey.'
  60. # * erubis 2.7.0 (http://www.kuwata-lab.com/erubis/) - a fast and extensible eRuby implementation which supports multi-language
  61. # * execjs 1.4.0 (https://github.com/sstephenson/execjs) - Run JavaScript code from Ruby
  62. # * factory_girl 4.5.0 (https://github.com/thoughtbot/factory_girl) - factory_girl provides a framework and DSL for defining and using model instance factories.
  63. # * factory_girl_rails 4.5.0 (http://github.com/thoughtbot/factory_girl_rails) - factory_girl_rails provides integration between factory_girl and rails 3
  64. # * gem-licenses 0.1.2 (http://github.com/dblock/gem-licenses) - List all gem licenses.
  65. # * hike 1.2.3 (http://github.com/sstephenson/hike) - Find files in a set of paths
  66. # * i18n 0.6.5 (http://github.com/svenfuchs/i18n) - New wave Internationalization support for Ruby
  67. # * jdbc-postgresql 9.2.1000 (https://github.com/rosenfeld/jdbc-postgresql) - PostgresSQL jdbc driver for JRuby
  68. # * journey 1.0.4 (http://github.com/rails/journey) - Journey is a router
  69. # * jquery-rails 3.0.4 (http://rubygems.org/gems/jquery-rails) - Use jQuery with Rails 3
  70. # * json-schema 2.6.2 (http://github.com/ruby-json-schema/json-schema/tree/master) - Ruby JSON Schema Validator
  71. # * mail 2.4.4 (http://github.com/mikel/mail) - Mail provides a nice Ruby DSL for making, sending and reading emails.
  72. # * metaclass 0.0.4 (http://github.com/floehopper/metaclass) - Adds a metaclass method to all Ruby objects
  73. # * mime-types 1.23 (http://mime-types.rubyforge.org/) - This library allows for the identification of a file's likely MIME content type
  74. # * mocha 1.1.0 (http://gofreerange.com/mocha/docs) - Mocking and stubbing library
  75. # * multi_json 1.7.9 (http://github.com/intridea/multi_json) - A common interface to multiple JSON libraries.
  76. # * nokogiri 1.6.5 (http://nokogiri.org) - Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser
  77. # * polyglot 0.3.3 (http://github.com/cjheath/polyglot) - Augment 'require' to load non-Ruby file types
  78. # * rack-test 0.6.2 (http://github.com/brynary/rack-test) - Simple testing API built on Rack
  79. # * railties 3.2.12 (http://www.rubyonrails.org) - Tools for creating, working with, and running Rails applications.
  80. # * rake 10.1.0 (http://rake.rubyforge.org) - Ruby based make-like utility.
  81. # * rspec-core 2.14.3 (http://github.com/rspec/rspec-core) - rspec-core-2.14.3
  82. # * rspec-expectations 2.14.0 (http://github.com/rspec/rspec-expectations) - rspec-expectations-2.14.0
  83. # * rspec-mocks 2.14.1 (http://github.com/rspec/rspec-mocks) - rspec-mocks-2.14.1
  84. # * rspec-rails 2.14.0 (http://github.com/rspec/rspec-rails) - rspec-rails-2.14.0
  85. # * sass 3.2.9 (http://sass-lang.com/) - A powerful but elegant CSS compiler that makes CSS fun again.
  86. # * sass-rails 3.2.6 () - Sass adapter for the Rails asset pipeline.
  87. # * simplecov 0.9.0 (http://github.com/colszowka/simplecov) - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites
  88. # * spork 1.0.0rc3 (http://github.com/sporkrb/spork) - spork
  89. # * therubyrhino 2.0.2 (http://github.com/cowboyd/therubyrhino) - Embed the Rhino JavaScript interpreter into JRuby
  90. # * thor 0.18.1 (http://whatisthor.com/) - A scripting framework that replaces rake, sake and rubigen
  91. # * tilt 1.4.1 (http://github.com/rtomayko/tilt/) - Generic interface to multiple Ruby template engines
  92. # * treetop 1.4.14 (https://github.com/cjheath/treetop) - A Ruby-based text parsing and interpretation DSL
  93. # * uglifier 2.1.2 (http://github.com/lautis/uglifier) - Ruby wrapper for UglifyJS JavaScript compressor
  94. # * xpath 2.0.0 (http://github.com/jnicklas/xpath) - Generate XPath expressions from Ruby
  95. # * blankslate 2.1.2.4 (http://github.com/masover/blankslate) - BlankSlate extracted from Builder.
  96. # * bourbon 3.1.8 (https://github.com/thoughtbot/bourbon) - Bourbon Sass Mixins using SCSS syntax.
  97. # * coffee-script 2.2.0 (http://github.com/josh/ruby-coffee-script) - Ruby CoffeeScript Compiler
  98. # * diff-lcs 1.2.4 (http://diff-lcs.rubyforge.org/) - Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm
  99. # * jquery-ui-rails 4.0.3 (https://github.com/joliss/jquery-ui-rails) - jQuery UI packaged for the Rails asset pipeline
  100. # * parslet 1.4.0 (http://kschiess.github.com/parslet) - Parser construction library with great error reporting in Ruby.
  101. # * rack 1.4.5 (http://rack.github.com/) - a modular Ruby webserver interface
  102. # * rack-cache 1.2 (http://tomayko.com/src/rack-cache/) - HTTP Caching for Rack
  103. # * rack-ssl 1.3.3 (https://github.com/josh/rack-ssl) - Force SSL/TLS in your app.
  104. # * rails 3.2.12 (http://www.rubyonrails.org) - Full-stack web application framework.
  105. # * simplecov-html 0.8.0 (https://github.com/colszowka/simplecov-html) - Default HTML formatter for SimpleCov code coverage tool for ruby 1.9+
  106. # * tzinfo 0.3.37 (http://tzinfo.rubyforge.org/) - Daylight-savings aware timezone library
  107. # * warbler 1.4.0.beta1 (http://caldersphere.rubyforge.org/warbler) - Warbler chirpily constructs .war files of your Rails applications.
  108. #
  109. #########################################################################################
  110. # BSD Licensed Libraries
  111. #########################################################################################
  112. #
  113. # * activerecord-jdbc-adapter 1.2.9.1 (https://github.com/jruby/activerecord-jdbc-adapter) - Copyright (c) 2006-2012 Nick Sieger <nick@nicksieger.com>, Copyright (c) 2006-2008 Ola Bini <ola.bini@gmail.com>
  114. # * jdbc-postgres 9.2.1004 (https://github.com/jruby/activerecord-jdbc-adapter) - Copyright (c) 1997-2011, PostgreSQL Global Development Group
  115. # * d3js 3.5.16 (https://d3js.org/) Copyright (c) 2015 Mike Bostock
  116. #
  117. #########################################################################################
  118. # Ruby Licensed Libraries
  119. #########################################################################################
  120. #
  121. # * json 1.8.0 (http://json-jruby.rubyforge.org/) - JSON implementation for JRuby
  122. # * rubyzip 0.9.9 (http://github.com/aussiegeek/rubyzip) - rubyzip is a ruby module for reading and writing zip files
  123. # * httpclient 2.3.4.1 (http://github.com/nahi/httpclient) - gives something like the functionality of libwww-perl (LWP) in Ruby
  124. # * test-unit 2.5.5 (http://test-unit.rubyforge.org/) - test-unit - Improved version of Test::Unit bundled in Ruby 1.8.x.
  125. #
  126. #########################################################################################
  127. # Public domain - creative commons Licensed Libraries
  128. #########################################################################################
  129. #
  130. # * torquebox 3.1.2 (http://torquebox.org/) - TorqueBox Gem
  131. # * torquebox-cache 3.1.2 (http://torquebox.org/) - TorqueBox Cache Gem
  132. # * torquebox-configure 3.1.2 (http://torquebox.org/) - TorqueBox Configure Gem
  133. # * torquebox-core 3.1.2 (http://torquebox.org/) - TorqueBox Core Gem
  134. # * torquebox-messaging 3.1.2 (http://torquebox.org/) - TorqueBox Messaging Client
  135. # * torquebox-naming 3.1.2 (http://torquebox.org/) - TorqueBox Naming Client
  136. # * torquebox-rake-support 3.1.2 (http://torquebox.org/) - TorqueBox Rake Support
  137. # * torquebox-security 3.1.2 (http://torquebox.org/) - TorqueBox Security Gem
  138. # * torquebox-server 3.1.2 (http://torquebox.org/) - TorqueBox Server Gem
  139. # * torquebox-stomp 3.1.2 (http://torquebox.org/) - TorqueBox STOMP Support
  140. # * torquebox-transactions 3.1.2 (http://torquebox.org/) - TorqueBox Transactions Gem
  141. # * torquebox-web 3.1.2 (http://torquebox.org/) - TorqueBox Web Gem
  142. #
  143. #########################################################################################
  144. # Apache Licensed Libraries
  145. #########################################################################################
  146. #
  147. # * addressable 2.3.8 (https://github.com/sporkmonger/addressable) - URI Implementation
  148. # * bcrypt-ruby 3.0.1 (http://bcrypt-ruby.rubyforge.org) - OpenBSD's bcrypt() password hashing algorithm.
  149. # * database_cleaner 1.4.0 (http://github.com/bmabey/database_cleaner) - Strategies for cleaning databases. Can be used to ensure a clean state for testing.
  150. # * annotate 2.5.0 (http://github.com/ctran/annotate_models) - Annotates Rails Models, routes, fixtures, and others based on the database schema.
  151. # * nvd3 1.8.4 (http://nvd3.org/) Copeyright (c) 2014 Novus Partners - chart library based on d3js
  152. # * smack 3.3.1 (https://www.igniterealtime.org/projects/smack/) - XMPP library
  153. #
  154. #########################################################################################
  155. # LGPL
  156. #########################################################################################
  157. #
  158. # * jruby-1.7.4
  159. # * jruby-jars 1.7.4 (http://github.com/jruby/jruby/tree/master/gem/jruby-jars) - The core JRuby code and the JRuby stdlib as jar
  160. # ** JRuby is tri-licensed GPL, LGPL, and EPL.
  161. #
  162. #########################################################################################
  163. # MPL Licensed Libraries
  164. #########################################################################################
  165. #
  166. # * therubyrhino_jar 1.7.4 (http://github.com/cowboyd/therubyrhino) - Rhino's jars packed for therubyrhino
  167. #
  168. #########################################################################################
  169. # Artistic 2.0
  170. # * mime-types 1.23 (http://mime-types.rubyforge.org/) - This library allows for the identification of a file's likely MIME content type
  171. #
  172. #########################################################################################
  173. #
  174. #########################################################################################
  175. # GPL-2
  176. #########################################################################################
  177. # * mime-types 1.23 (http://mime-types.rubyforge.org/) - This library allows for the identification of a file's likely MIME content type
  178. #
  179. #########################################################################################
  180. # No License Given
  181. #########################################################################################
  182. #
  183. # * spork-testunit 0.0.8 (http://github.com/timcharper/spork-testunit) - spork-testunit
  184. # * sprockets 2.2.2 (http://getsprockets.org/) - Rack-based asset packaging system
  185. #
  186. #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  187. module LoadPrompts
  188. def createVen
  189. # ven = Ven.create(name: "Test_VEN_Name")
  190. end
  191. #####################################################################
  192. def loadBPrompts
  193. TestCasePrompt.create(name: 'Prompt009', test_cases: 'prompt_009: E1_1010',
  194. instructions: 'If possible, cause the VTN DUT to send an empty oadrDistributeEvent payload. Resume test execution whether or not the VTN DUT can be so configured.',
  195. ported: false
  196. )
  197. TestCasePrompt.create(name: 'Prompt010', test_cases: 'prompt_010: E1_1020, E1_1030, E1_1050, E1_1060, E1_1065',
  198. instructions: 'The VTN DUT should be configured so that there is a single pending event (dtstart=current time + 10 minutes, one interval of 5 minutes) with two resources configured. Click resume when event has been added to the VTN.',
  199. ported: false
  200. )
  201. TestCasePrompt.create(name: 'Prompt038', test_cases: 'prompt_038: E1_1025',
  202. instructions: 'The VTN DUT should be configured so that there is a single pending event configured as follows: dtstart = current time + 1 minute, duration = 5 minutes, LOAD_DISPATCH, signalType = setpoint, units = powerReal, interval #1, 5 minutes, signalPayload = 40. Click resume when event has been added to the VTN.',
  203. ported: false
  204. )
  205. TestCasePrompt.create(name: 'Prompt041', test_cases: 'prompt_041: E1_1027',
  206. instructions: 'The VTN DUT should be configured so that there is a single pending event configured as follows: ' +
  207. 'dtstart = current time + 10 minutes, duration = 2 hours ' +
  208. 'ELECTRICITY_PRICE, signalType = price, units = currencyPerKWh ' +
  209. 'Interval #1, 1 hour, signalPayload = 3.14 ' +
  210. 'Interval #2, 1 hour, signalPayload = 3.17 ' +
  211. 'Two Resources defined ' +
  212. 'Baseline ' +
  213. 'dtstart = current time minus- one day, duration = 2 hours ' +
  214. 'ELECTRICITY_PRICE, signalType = price ' +
  215. 'Interval #1, 1 hour, signalPayload = 3.05 ' +
  216. 'Interval #2, 1 hour, signalPayload = 3.08. ' +
  217. 'Note that this event includes a baseline. ',
  218. ported: false
  219. )
  220. TestCasePrompt.create(name: 'Prompt011', test_cases: 'prompt_011',
  221. instructions: 'The VTN DUT should be configured so that there are two pending events: dtstart = CurrentTime + 1 minute, duration = 5 minutes SIMPLE, signalType = level Interval #1, 5 minutes, signalPayload = 2 ELECTRICITY_PRICE, signalType = price, units = currencyPerKWh Interval #1, 5 minutes, signalPayload = 3.14.',
  222. ported: false
  223. )
  224. TestCasePrompt.create(name: 'Prompt012', test_cases: 'prompt_012',
  225. instructions: 'The VTN DUT should be configured so that there are two pending events: dtstart = CurrentTime + 1 minute, duration = 5 minutes SIMPLE, signalType = level Interval #1, 5 minutes, signalPayload = 2 ELECTRICITY_PRICE, signalType = price, units = currencyPerKWh Interval #1, 5 minutes, signalPayload = 3.14',
  226. ported: false
  227. )
  228. TestCasePrompt.create(name: 'Prompt065', test_cases: 'prompt_065',
  229. instructions: 'The VTN DUT should be configured so that there is a single pending event configured as follows: dtstart = CurrentTime + 1 minutes, duration = 5 minutes SIMPLE, signalType = level Interval #1, 5 minutes, signalPayload = 2 Click resume when event has been added to the VTN.',
  230. ported: false
  231. )
  232. TestCasePrompt.create(name: 'Prompt002', test_cases: 'prompt_002',
  233. instructions: 'Please make sure that the DUT is in a unregistered state with respect to the Test Harness.',
  234. ported: false
  235. )
  236. TestCasePrompt.create(name: 'Prompt007', test_cases: 'prompt_007',
  237. instructions: 'Please initiate a registration cancellation on the VTN DUT.',
  238. ported: false
  239. )
  240. TestCasePrompt.create(name: 'Prompt008', test_cases: 'prompt_008',
  241. instructions: 'Please initiate a re-registration request on the VTN DUT Please click Resume Test Execution to continue.',
  242. ported: false
  243. )
  244. TestCasePrompt.create(name: 'Prompt019', test_cases: 'prompt_019: R0_8010_TH_VEN',
  245. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -TELEMETRY_STATUS Report -Granularity =PT0M - will be Ignored -reportBackDuration = PT0M -Do not include reportInterval as this is a one shot report',
  246. ported: false
  247. )
  248. TestCasePrompt.create(name: 'Prompt020', test_cases: 'prompt_020',
  249. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -TELEMETRY_STATUS Report -granularity =1 minute -reportBackDuration = granularity -reportInterval:dtstart = CurrentTime -reportInterval:duration = 5 minutes',
  250. ported: false
  251. )
  252. TestCasePrompt.create(name: 'Prompt021', test_cases: 'prompt_021',
  253. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -TELEMETRY_STATUS Report -granularity =1 minute -reportBackDuration = granularity -reportInterval:dtstart = CurrentTime + 15 seconds -reportInterval:duration = 10 minutes',
  254. ported: false
  255. )
  256. ##
  257. TestCasePrompt.create(name: 'Prompt022', test_cases: 'prompt_022',
  258. instructions: 'Configure the VTN DUT such that it will send a report cancellation request.',
  259. ported: false
  260. )
  261. TestCasePrompt.create(name: 'Prompt025', test_cases: 'prompt_025',
  262. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -METADATA Report -reportSpecifierID = METADATA -Granularity = PT0M - will be Ignored -reportBackDuration = PT0M -Do not include report Interval as this is a one shot report',
  263. ported: false
  264. )
  265. TestCasePrompt.create(name: 'Prompt026', test_cases: 'prompt_026',
  266. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -METADATA Report -reportSpecifierID = METADATA -granularity = PT0M - will be Ignored -reportBackDuration = 1 minute -reportInterval:dtstart = CurrentTime -reportInterval:duration = 5 minutes',
  267. ported: false
  268. )
  269. TestCasePrompt.create(name: 'Prompt027', test_cases: 'prompt_027',
  270. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -METADATA Report -reportSpecifierID = METADATA -granularity = PT0M - will be Ignored -reportBackDuration = 1 minute -reportInterval:dtstart = CurrentTime + 15 seconds -reportInterval:duration = 10 minutes',
  271. ported: false
  272. )
  273. TestCasePrompt.create(name: 'Prompt043', test_cases: 'prompt_043',
  274. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -HISTORY_USAGE Report (Full Report) -granularity =0 -reportBackDuration = PT0M -reportInterval:dtstart = CurrentTime -reportInterval:duration = PT0M (for all data) -rID values for powerReal and energyReal',
  275. ported: false
  276. )
  277. TestCasePrompt.create(name: 'Prompt044', test_cases: 'prompt_044',
  278. instructions: 'Configure the VTN DUT such that it will send a report request as follows: HISTORY_USAGE Report (Partial Report) -granularity =0 -reportBackDuration = PT0M -reportInterval:dtstart = CurrentTime minus 30 minutes -reportInterval:duration = PT30M -rID value - for energyReal',
  279. ported: false
  280. )
  281. TestCasePrompt.create(name: 'Prompt045', test_cases: 'prompt_045',
  282. instructions: 'Configure the VTN DUT such that it will send a report request as follows: TELEMETRY_USAGE Report -granularity = minimum sampling rate -reportBackDuration = PT0M -Do not include reportInterval as this is a one shot report -rID values for powerReal and energyReal',
  283. ported: false
  284. )
  285. TestCasePrompt.create(name: 'Prompt046', test_cases: 'prompt_046',
  286. instructions: 'Configure the VTN DUT such that it will send a report request as follows: TELEMETRY_USAGE Report -granularity =1 minute -reportBackDuration = 2 minutes -reportInterval:dtstart = CurrentTime + 15 seconds -reportInterval:duration = 10 minutes -rID value - for powerReal',
  287. ported: false
  288. )
  289. TestCasePrompt.create(name: 'Prompt055', test_cases: 'prompt_055',
  290. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -TELEMETRY_STATUS Report -Granularity =PT0M (on change) -reportBackDuration = PT1M -reportInterval:dtstart = CurrentTime + 2 minute -reportInterval:duration = 5 minutes',
  291. ported: false
  292. )
  293. TestCasePrompt.create(name: 'Prompt056', test_cases: 'prompt_056',
  294. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -TELEMETRY_STATUS Report granularity =1 minute -reportBackDuration = granularity -reportInterval:dtstart = CurrentTime -reportInterval:duration = 0 minutes',
  295. ported: false
  296. )
  297. TestCasePrompt.create(name: 'Prompt057', test_cases: 'prompt_057',
  298. instructions: 'Configure the VTN DUT such that it will send a report cancellation request with reportToFollow set to true.',
  299. ported: false
  300. )
  301. TestCasePrompt.create(name: 'Prompt058', test_cases: 'prompt_058',
  302. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -TELEMETRY_STATUS Report -Granularity =PT0M - will be Ignored -reportBackDuration = PT0M -Do not include reportInterval as this is a one shot report TELEMETRY_USAGE Report -granularity = minimum sampling rate -reportBackDuration = PT0M -Do not include reportInterval as this is a one shot report -rID values for powerReal and energyReal',
  303. ported: false
  304. )
  305. TestCasePrompt.create(name: 'Prompt064', test_cases: 'prompt_064',
  306. instructions: 'Configure the VTN DUT such that it will send a report request as follows: -TELEMETRY_STATUS Report -Granularity =PT1M -reportBackDuration = PT1M -reportInterval:dtstart = CurrentTime -reportInterval:duration = 2 minutes',
  307. ported: false
  308. )
  309. end
  310. #####################################################################
  311. def loadPortedPrompts
  312. loadPrompt('A_Ex_0452_first',
  313. 'First Prompt: A_Ex_0452, A_Ex_0454, A_Ex_0464, A_Ex_0466,A_Ex_0470, A_Ex_0474, A_Ex_0476, A_Ex_0478, A_Ex_0480, A_Ex_0492, A_Ex_0496, A_Ex_0498',
  314. 'The VTN should be configured so that there is a single pending event (dtstart =current time + 5 minutes, one interval of 5 minutes, response required set to always).',
  315. true)
  316. loadPrompt('A_Ex_0420_first',
  317. 'First Prompt: A_Ex_0420',
  318. 'The VTN should be configured so that there is a single pending event that will start in one minute (dtstart =current time +1 minutes, one interval of 5 minutes, response required set to always)',
  319. true
  320. )
  321. loadPrompt('A_Ex_0484_first',
  322. 'First Prompt: A_Ex_0484, A_Ex_0490, A_Ex_0494',
  323. 'The VTN should be configured so that there is a single active event (dtstart =current time minus 1 minute, one interval of 5 minutes, response required set to always).',
  324. true
  325. )
  326. loadPrompt('A_Ex_0430_first',
  327. 'First Prompt: A_Ex_0430, A_Ex_0500, A_Ex_0670, A_Ex_0710, A_Ex_0720, A_Ex_0730, A_Ex_0740, A_Ex_0780',
  328. 'The VTN should be configured so that there is a single pending event (dtstart =current time + 2 minutes, one interval of 5 minutes, response required set to always).',
  329. true
  330. )
  331. loadPrompt('A_Ex_0440_first',
  332. 'First Prompt: A_Ex_0440, A_Ex_0450',
  333. 'The VTN should be configured so that there are two non-overlapping pending events (two 1 hour events, 4 hours apart, response required set to always).',
  334. true
  335. )
  336. # This prompt is never used. It is inconsistent with the protocol to force the VTN to issue
  337. # a distributeEvent message when the events haven't changed
  338. # loadPrompt('A_Ex_0464_second',
  339. # 'Second Prompt: A_Ex_0464, A_Ex_0466. Third Prompt: A_Ex_0476, A_Ex_0478',
  340. # 'From the VTN control panel cause the VTN to re-send the previously sent oadrDistributeEvent.',
  341. # true)
  342. loadPrompt('A_Ex_0464_second',
  343. 'Second Prompt: A_Ex_0464, A_Ex_0466. Third Prompt: A_Ex_0476, A_Ex_0478',
  344. 'From the VTN control panel cause the VTN to re-send the previously sent oadrDistributeEvent.',
  345. true)
  346. loadPrompt('A_Ex_0468_first',
  347. 'First Prompt: A_Ex_0468',
  348. 'The VTN should be configured so that there is a single pending event (dtstart =current time + 5 minutes, one interval of 5 minutes, response required set to never.',
  349. true
  350. )
  351. loadPrompt('A_Ex_0470_second',
  352. 'Second Prompt: A_Ex_0470, A_Ex_0474, A_Ex_0476, A_Ex_0478',
  353. 'The VTN should be configured such that the previously sent event is modified to extend the start time of the event by 1 minute, response required set to always.',
  354. true
  355. )
  356. loadPrompt('A_Ex_0480_second',
  357. 'Second Prompt: A_Ex_0480',
  358. 'The VTN should be configured such that the previously sent event is modified to extend the start time of the event by 1 minute, response required set to never.',
  359. true
  360. )
  361. loadPrompt('A_Ex_0484_second',
  362. 'Second Prompt: A_Ex_0484',
  363. 'The VTN should be configured such that the previously sent event duration is lengthened to 6 minutes, response required set to always.',
  364. true
  365. )
  366. loadPrompt('A_Ex_0490_second',
  367. 'Second Prompt: A_Ex_0490',
  368. 'The VTN should be configured such that the previously sent event is modified to extend the overall duration and last interval duration by one minute, response required set to always.',
  369. true
  370. )
  371. loadPrompt('A_Ex_0492_second',
  372. 'Second Prompt: A_Ex_0492, A_Ex_0494, A_Ex_0496',
  373. 'The VTN should be configured such that the previously sent event is cancelled, response required set to always.',
  374. true
  375. )
  376. loadPrompt('A_Ex_0498_second',
  377. 'Second Prompt: A_Ex_0498',
  378. 'The VTN should be configured such that the previously sent event is cancelled, response required set to never.',
  379. true
  380. )
  381. loadPrompt('A_Ex_0510_first',
  382. 'First Prompt: A_Ex_0510',
  383. 'The VTN should be configured to add two events each in two different market contexts. Make sure that the Test Harness has matching marketContext definitions. The configuration of events is as follows:'+
  384. '1) MarketContext1, dtstart = current time, duration = 10 minutes, priority=2 ' +
  385. '2) MarketContext1, dtstart = current time + 20 minutes, duration = 10 minutes. Priority =0 ' +
  386. '3) MarketContext2, dtstart = current time, duration = 10 minutes, priority =1 4)MarketContext2, dtstart = current time + 60 minutes, duration = 10 minutes. Priority =0 ' +
  387. ' All with response required set to always. ',
  388. true
  389. )
  390. loadPrompt('A_Ex_0520_first',
  391. 'First Prompt: A_Ex_0520',
  392. 'The VTN should be configured to add two events each in two different market contexts. Make sure that the Test Harness has matching marketContext definitions. The configuration of events is as follows: ' +
  393. '1)MarketContext1, dtstart = current time, duration = 10 minutes, priority =1 ' +
  394. '2)MarketContext1, dtstart = current time + 20 minutes, duration = 30 minutes. Priority =0 ' +
  395. '3)MarketContext2, dtstart = current time minus 10 minutes, duration = 20 minutes, priority =1 ' +
  396. '4)MarketContext2, dtstart = current time + 20 minutes, duration = 10 minutes. Priority =0 ' +
  397. 'All with response required set to always.',
  398. true
  399. )
  400. loadPrompt('A_Ex_0525_first',
  401. 'First Prompt: A_Ex_0525',
  402. 'Please add the following events to the VTN\: '+
  403. '1)MarketContext1, dtstart = current time + 40 minutes, duration = 10 minutes, response required set to always. Priority =0 '+
  404. '2)MarketContext1, dtstart = current time, duration = 30 minutes, response required set to always. Priority =1',
  405. true
  406. )
  407. loadPrompt('A_Ex_0525_second',
  408. 'Second Prompt: A_Ex_0525',
  409. 'Please modify the previously sent events as follows\: 1)Cancel event with earliest start time',
  410. true
  411. )
  412. loadPrompt('A_Ex_0527_first_pull_prompt',
  413. 'First Pull Prompt: A_Ex_0527',
  414. 'The VTN should be configured so that there is a single pending event that will start in 5 minutes (dtstart =current time +5 minutes, one interval of 5 minutes). Set x-RampUp time to 4 minutes.',
  415. true
  416. )
  417. loadPrompt('A_Ex_0527_first_push_prompt',
  418. 'First Push Prompt: A_Ex_0527',
  419. 'The VTN should be configured so that there is a single pending event that will start in 3 minutes (dtstart =current time +3 minutes, one interval of 3 minutes). Set x-RampUp time to 4 minutes.',
  420. true
  421. )
  422. loadPrompt('A_Ex_0530_first_prompt',
  423. 'First Prompt: A_Ex_0530',
  424. 'This test observation test case will be used to verify that two overlapping events in the same market context cannot be created from the DUT_VTN console application. Attempt to configure the VTN as follows\: ' +
  425. '1)MarketContext1, dtstart = current time + 5 minutes, duration = 30 minutes, priority =0 ' +
  426. '2)MarketContext1, dtstart = current time + 5 minutes, duration = 30 minutes (all with response required set to always). Priority =0',
  427. false
  428. )
  429. loadPrompt('A_Ex_0655_first_prompt',
  430. 'First Prompt: A_Ex_0655',
  431. 'The VTN should be configured so that there are three non-overlapping pending events (three 1 hour events, each 2 hours apart, response required set to always).',
  432. true
  433. )
  434. loadPrompt('A_Ex_0657_first_prompt',
  435. 'First Prompt: A_Ex_0657',
  436. 'Please add the following event to the VTN\: 1)MarketContext1, dtstart = current time + 1 minute, duration = 3 minutes Click resume when the events have been added to the VTN.',
  437. true
  438. )
  439. loadPrompt('A_Ex_0657_second_prompt',
  440. 'Second Prompt: A_Ex_0657',
  441. 'Please modify the previously sent events as follows\: 1)Cancel event.',
  442. true
  443. )
  444. loadPrompt('A_Ex_0660_first_prompt',
  445. 'First Prompt: A_Ex_0660',
  446. 'The VTN should be configured for one event starting in 1 hour with a duration of 1 hour, response required set to always.',
  447. true
  448. )
  449. loadPrompt('A_Ex_0660_second_prompt',
  450. 'Second Prompt: A_Ex_0660',
  451. 'The VTN should be configured for one CPP event starting in 1 minute with a duration of 30 minutes, response required set to always.',
  452. true
  453. )
  454. loadPrompt('A_Ex_0680_first_prompt',
  455. 'First Prompt: A_Ex_0680',
  456. 'Please add the following events to the VTN\: ' +
  457. '1)dtstart = current time + 41 minutes, duration = 10 minutes. ' +
  458. '2) dtstart = current time + 10 minutes, duration = 30 minutes ',
  459. true
  460. )
  461. loadPrompt('A_Ex_0680_second_push_prompt',
  462. 'Second Push Prompt: A_Ex_0680',
  463. 'Please add one additional event to the VTN as follows\: ' +
  464. '1)dtstart = current time + 2 hours, duration = 10 minutes, response required set to always',
  465. true
  466. )
  467. loadPrompt('A_Ex_0750_first_prompt',
  468. 'First Prompt: A_Ex_0750',
  469. 'The VTN should be configured for two non-overlapping CPP events (dtstart at current time plus 1 hour and 2 hours respectively, both with 30 minute durations, response required set to always).',
  470. true
  471. )
  472. loadPrompt('A_Ex_0685_first_prompt',
  473. 'First Prompt: A_Ex_0685',
  474. 'Test execution has paused to allow for manual intervention. Please add the following event to the VTN: MarketContext1, dtstart= current time + 1 minute, duration = 1 minute, with startafter randomization equal to 2 minutes. Skip this test if events cannot be randomized with a startafter element. Click resume when the events have been added to the VTN.',
  475. true
  476. )
  477. loadPrompt('A_Ex_0685_push_second_prompt',
  478. 'Push Second Prompt: A_Ex_0685',
  479. 'Please send a new event in approximately 30 seconds (dtstart=current time + 1 minute, duration= 1 minute).',
  480. true
  481. )
  482. loadPrompt('A_Ex_0432_first_prompt',
  483. 'First Prompt: A_Ex_0432',
  484. 'The VTN should be configured with so that there is a single pending event(dtstart\=current time + 2 minutes, three intervals of 5 minutes). If supported by the VTN GUI, configure the following event characteristics: ' +
  485. '1)x-eiRecovery = 1 minute ' +
  486. '2)x-eiRampUp = 1 minute ' +
  487. '3)startafter (random period) = 1 minute',
  488. true
  489. )
  490. loadPrompt('A_Ex_0435_first_prompt',
  491. 'First Prompt: A_Ex_0435',
  492. 'The VTN should be configured so that there is a single pending event that will start in one minute (dtstart\=current time +1 minutes, one interval of 5 minutes). The VTN should should also be configured such that is sends one or more eiTarget values such as partyID, resourceID, GroupID, or venID that match the test system properties configuration.',
  493. true
  494. )
  495. end
  496. #####################################################################
  497. private
  498. def loadPrompt(name, test_cases, instructions, ported)
  499. class_name = "Prompt#{name.camelize}"
  500. TestCasePrompt.create(name: class_name, test_cases: test_cases, instructions: instructions, ported: ported)
  501. #if Rails.env != 'production'
  502. # fileName = "lib/testcases/prompt_#{name.downcase}.rb"
  503. # if !File.exist?(fileName)
  504. # f = File.new(fileName, "w")
  505. # output = "class #{class_name}\n include PromptHelper\n\n def execute\n end\nend\n"
  506. # f.write(output)
  507. # f.close
  508. # puts class_name
  509. # end
  510. #end
  511. end
  512. end