Module: MobyBehaviour::QT::Attribute
- Includes:
- Behaviour
- Defined in:
- lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/attribute.rb
Overview
description
Behaviours for handling attributes
behaviour
QtAttribute
requires
testability-driver-qt-sut-plugin
input_type
*
sut_type
qt
sut_version
*
objects
*
Instance Method Summary collapse
-
#[]=(name, *arguments) ⇒ Object
description Wrapper method to set test object’s attribute value.
-
#set_attribute(attribute, value, type = nil) ⇒ Object
description Sets an attribute of the target object.
Methods included from Behaviour
Instance Method Details
#[]=(name, *arguments) ⇒ Object
description
Wrapper method to set test object’s attribute value. See [link=“#QtAttribute:set_attribute”]supported value argument types and [link=“#attribute_types_table”]attribute types table.nn Minimum number of required arguments is 2; attribute name and new value. Please see examples for correct call sequence.
arguments
name
String
description: Attribute name
example: "attribute_name"
*arguments
Array
description: Attribute value and type
example: ["0,0", "QPoint"]
returns
NilClass
description: -
example: -
272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 |
# File 'lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/attribute.rb', line 272 def []=( name, *arguments ) _argument_count = arguments.count if _argument_count == 0 || _argument_count > 2 raise ArgumentError, "wrong number of arguments (#{ _argument_count } of 2)" elsif _argument_count == 2 # set_attribute( name, arguments.last, arguments.first ) arguments.reverse! end # do magic set_attribute( name, *arguments ) nil end |
#set_attribute(attribute, value, type = nil) ⇒ Object
description
Sets an attribute of the target object.
arguments
attribute
String
description: Name of the attribute to be set as string
example: "text"
Symbol
description: Name of the attribute to be set as symbol
example: :text
value
String
description: New value of the attribute.
example: "Menu"
Integer
description: New value of the attribute.
example: 200
TrueClass
description: New value of the attribute.
example: true
FalseClass
description: New value of the attribute.
example: false
Date
description: New value of the attribute.
example: Date.today
Time
description: New value of the attribute.
example: Time.now
DateTime
description: New value of the attribute.
example: DateTime.now
type
String
description: Type of the value. If this argument is not given, the type will be detected based on the class of the value argument.
example: "QPoint"
default: nil
tables
attribute_types_table
title: Valid type argument values
|Type|Example|
|QRect|'10,10,150,150'|
|QPoint|'100,200'|
|QSize|'50,80'|
|QDate|'15.08.2009'|
|QDateTime|'1373352400'|
returns
NilClass
description: Always returns nil
example: nil
exceptions
ArgumentError
description: One of the arguments is not valid
RuntimeError
description: Setting of the attribute failed
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/attribute.rb', line 117 def set_attribute( attribute, value, type = nil ) # verify attribute argument variable type attribute.check_type [ Symbol, String ], 'wrong argument type $1 for attribute name (expected $2)' # verify type argument variable type type.check_type [ NilClass, String ], 'wrong argument type $1 for attribute type (expected $2)' # convert symbol to string attribute = attribute.to_s if attribute.kind_of?( Symbol ) # raise exception if attribute name was not given attribute.not_empty 'attribute name cannot be be empty string' type.not_empty 'argument type must be either nil or non empty string' if type.kind_of?( String ) # in qt_behaviour command = command_params command.transitions_off command.command_name( 'SetAttribute' ) case type when nil # Implicit typing # by class if value.kind_of? Integer params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.strip, 'attribute_type' => 'int'} elsif value.kind_of? Date temp_date = value.day.to_s << '.' << value.month.to_s << '.' << value.year.to_s params = { 'attribute_name' => attribute.to_s, 'attribute_value' => temp_date, 'attribute_type' => 'QDate' } elsif value.kind_of? Time params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_i.to_s, 'attribute_type' => 'QDateTime' } elsif value.kind_of? DateTime params = { 'attribute_name' => attribute.to_s, 'attribute_value' => Time.parse(value.to_s).to_i.to_s, 'attribute_type' => 'QDateTime' } elsif value.kind_of? TrueClass params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.downcase, 'attribute_type' => 'bool'} elsif value.kind_of? FalseClass params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.downcase, 'attribute_type' => 'bool'} else # by format # if ( value.kind_of?( Integer ) || ( value.kind_of?( String ) && value.strip == value.strip.to_i.to_s ) ) if value.kind_of?( String ) && value.strip == value.strip.to_i.to_s params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.strip, 'attribute_type' => 'int'} elsif (value == true || value == false || (value.kind_of?(String) && (value.strip.downcase == "true" || value.strip.downcase == "false"))) params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.downcase, 'attribute_type' => 'bool'} else params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => 'string'} end end when "QRect" params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => 'QRect'} when "QPoint" params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => 'QPoint'} when "QSize" params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => 'QSize'} when "QDateTime" params = { 'attribute_name' => attribute.to_s, 'attribute_type' => 'QDateTime' } if value.kind_of? String params[ 'attribute_value' ] = value.to_s elsif value.kind_of? Integer params[ 'attribute_value' ] = value.to_s elsif value.kind_of? Time params[ 'attribute_value' ] = value.to_i.to_s elsif value.kind_of? DateTime params[ 'attribute_value' ] = Time.parse( value.to_s ).to_i.to_s else raise ArgumentError.new( "The value for QDateTime type attributes must be of type String, Integer, Time or DateTime, it was #{value.class.to_s}." ) end when "QDate" params = { 'attribute_name' => attribute.to_s, 'attribute_type' => 'QDate' } if value.kind_of? String params[ 'attribute_value' ] = value.to_s elsif value.kind_of? Date temp_date = value.day.to_s << '.' << value.month.to_s << '.' << value.year.to_s params[ 'attribute_value' ] = temp_date else raise ArgumentError.new( "The value for QDate type attributes must be of type String or Date, it was #{value.class.to_s}." ) end else #puts "Unidentified.\nName: " << attribute.to_s << "\nValue: " << value.to_s << "\nType: " << type.to_s params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => type.to_s } end command.command_params( params ) command.service( 'objectManipulation' ) returnValue = @sut.execute_command( command ) returnValue = "OK" begin returnValue = @sut.execute_command( command ) rescue $logger.behaviour "FAIL;Failed when calling method set_attribute with values attribute:#{attribute.to_s} value:#{value.to_s}.;#{identity};set_attribute;" raise RuntimeError.new("Setting attribute '%s' to value '%s' failed with error: %s" % [attribute, value, returnValue]) end $logger.behaviour "PASS;The method set_attribute was executed successfully with with values attribute:#{attribute.to_s} value:#{value.to_s}.;#{identity};set_attribute;" nil end |