5,::i---**0<?@(6(6*A5 *B5*C*3 !"&)-/?0q.>>/I0I0 **W9 G  @ A:0*3B  C!1EF122a2**00I,*3 V&DE93EE344A4**07* 5l*J *0O7 * KH5* L0MH*007* NH* 0OH5 * PH**3 "-/CNYkmx|~FGHIJKI5II)A999 **07Z*J *0O7** SH* NH* 0OH5* TH* 0H*5* *3 '2DFQ^bdhjFGHKkQ;RRW>!?!? **W0B*3 -0.7  less G@VW AAAaA**0O70O6 0,*3"$ ing_""IHGHIJ%IBVV}qCCCC**0Z,0*3GLDYYEE E**0]^0*3  _`ML@qGF\\9GqG!G**WZ,*3     uHbcH II""]I**dW0e*3N  L5JbcJJJ""%K**0,#Y*W07 *W,$5 *Wf,*3!+-O do_s ver IP.KbbmMMM"M**9 Q: I0*3ROhhOO%O**9 Q:W0lI0,*3 S  TR!PjkQ RR&&]R**0,'m,*3   UVeSjj T=T=T&eT**0Q6* 07   0*3 "$WXYZ%]UooVV(V **07* 07   0 *3 #%WY[&WqqYMY)MY **0Q6*A07 A 0*3 $&\XYZ'EZss}[[*[ **07*A07A 0 *3 %'\Y[(\uu ^U^+U^ ** 'w !6*0*]*3^M_vv5`e`,e`**0]*]7 5*0]*  *3    &( _`)=ayybb-b**00Y*W07*W5 *3 a&b c{{#dd.d**W0*3  c    d@fe}~9Ufuf}f//f**,0*3 !eW9 G  f:(7WZ*9 g:X003W4! ()$hi@i-Qh}9ii//i  1  <g}}7)hIhj/Uk**0WC7*W0*00* *3#$%()+-,/+jklmcd@m0-lGmm2m**0Y*0Y*W9 n:0Y*W7W7WWMD7 *W?5*W*3./ 02(3>4G3I6M8O6opqrsCtuvP)o]qq3r **9   w:00*3:;<;xy9sut9t49t**W0W00*3ABCDBFBz  c{|!uu vv55Yv**00=*0,6*=*3>?AHI H c}~!Qw}Yxxx5x**07* 5*000 **3KL MLOP'O*Q.S0Q&1yA{{7{ **07 *000 *5* *3UV W X!W$Y(V*[.]0[&1|!~q~8q~ **000600000*3_a`a)b+a&&,yـ 9 **007* 5a*0Z,Y*AY*WW0H*W07 *WH5 *WH*W00H*W **3de feh!j'l4n=oGnIqStivpxtzvxLP&wQ : **007* 5a*0Z,Y*AY*WW0H*W07 *WH5 *WH*W00H*W **3|} ~}!'4=GISiptvJLP&w!ًY;i **0W0*3  &+<< ** '76 0,=*3  GE!)!!<I**0W0Q*3  &X17>>a** '76 0,?*3  lessGE!Y5a>**007 *00*0 0*3 %'kYk[(Aٗ @ **  *007 *00*0 0*3+-kYkZ.1QٚAٚ**07]*0Y*W0Y*0@B72*WWB7*9 :0W00*W 05*W 05* *3 (3=ADFMXZegkmjk?&hZ[i@neqB- **07c*  *0Y*W0Y*0@B7 *W 056*WWB7*9 :0W00*W 05* *3 !.9;FPTWY`kmqsjk?[&hZi@tMC **0C7007 0OQ*3*,?lkkHX-1D1**W009 G  :0*3W9 :(7*3W4 $IiEEqFyq9E**0 0*3  kZy ))HGq**W,I*3   >    YɰGGY**00606 0,H*3 ! UselGG"1AG**  *0 0*3  k[KJ**W,L*3   V V  V ٶIiqJJٷ**0070Q7 0,K*3 "$ s Me""GJXGJ%ٹJA** W,00Y*W07 *W05 *WW0Y*WW0*2*WW0*3&( 24 ?CNP*XX0W4 $|i MM@locNCNr||QiQѿM **W0Y*W07W07 *W05*W0*3 (*245Q)9OI**9   :W00*3 ra=1QPY**W9 Q:07*WW[I05 *WW0*3"#$"#$&.(0&C1AEQ**W0Y*W0B7*9 :05*W07*WW0Y*W005i*WW07*9 ! ":W005H*W07 *W054*W07 *W005*W07 *WQ5 *W00*3*+ -.&-(/20>1H/J2V3i2k4v5}4676898;=;iXUR**W0*3A     !)TSq** W,,U*3@ABA   I SSy** I,T*3?@C@ ceivaSA**W0*3EF G Fj)V**00700W0I*3IKJ K L"K&#W**W0S7W0*3NOPO X**WXB*3ST U T    YY**00W0I,Z*3RSVS VariVY**WWW0Y*W0*WIWH*3XYZ[ \ Y^`'a)`azj*a[ **0WW0*3cdef g hdjdzjc\ **0WW0*3lmno p qmsmzjq] **I0*3uvwvAa^a**I0=*3y{z {|{I 9_9**0=*3~G1`**9    :WWW00*3"$azj@a%Ia **00*3c{}%b%**07 *005*0*3 k !5c5**00W0I*3&=1 d**W00*39e**0*3   A%EfE**AY* 7m*W00H*07*WH*W00H5)*W0H*W00H*WH5*07<*W00H*WH*W00H*WH5I*W000H*WH*W9   :00H*W H*W 00 H*W0H*W 00 H*W*3#+57:>AEGZpz| +AEG&k&&k&&HI]g((**000*3zh**W0Y*WB7 *WH*W9   :W00H*W07/*WH*W9   :W00H*WeH*W B7 *WH*W*3  ')6;>BKUWdilpzz  ui**00*3  L=j**W00BY*WW0*3  V VD]kki **0,l*3  V yk9**00B*3    !m**00*3  !!9YnY**00*3  A##%o***3    5!AqA**W0Y*W7* WW%J5 *WH*3 !""!$$.&0$1 &&=r**XWH*3*+ , + V   (*UIiqts**X,u*3)* - * V     ()S !!!ss!**0,t*3() .)  }<a"((Q""#s)#**W,*301 21$@,,a$$v$**0*345 6 5 %..i%&w&**W0X0B*3;=< =>= V ometzz&01w'''xx(**,y*3:; ? ;   )00uy)))x)**9 :0* q0*%r0*'s0*+v0*-w0*0*/x0*3((40@4L8S:^@`:a*$$/-.p. **9  :5006070080090:9   :; 0*3FG HJ(O2P9XGGIHKGNZPG&j&QI/44112{12 **0*3{0*3CDF[F322q44z4**=9   :00>0?0*3cokd k"o%p'o(54467}7**9    :0*0*3}0*3^_ac*q,c- 8<<q99|9**9  :0* 0*0*0* 0* 0* 0*  0*" 0*$0**0*-0*0*00*20*40*0*0*0*<0*=0*D0*H0*Q0*U0*X 0*[!0*a"0*g%0*i&0*n(0*p)0*r*0*t+0*,0*x-0*z.0*|/0*20*30*40*50*70*80*90*:0*;0*<0*>0*@0*A0*B0*C0*D0*E0*G0*J0*M0*O0*P0*Q0*R0*S0*V0*W0*X0*Y0*[0*\0*]0*^0*_0*`0*a0*b0*c0*d0*e0*f0*7g0*8h0*i0*j0*k0*m0* n0*"o0* +p*9   :+z*9   :+g|*3*6 B%N*Z.f3r7~CSbdhltvz'3?KWco{#.:>KU _d#|/;GS_kw"*?EINRX+c7lCuOy[~gs C-^@rB^C: \__W]**0*9  :+*3s!"ef g g** +*3 t gQhqhqh** +*3 u 9iiii* +3 jjjjjiqhg  eIq i aQ!" !1$%I*y(+-Y04q2:?)DAEGMNmI5KPTR W}Y\^u`beekf%janqrYtxv{~Y)i)ѕi9ɦqi yQaIII i EuUU%uYy.AI#!$)&)A(429A7@ABCDEFGHIJKLMNOPQRSTUVWXY>&ZY[\]^_`abIosRqucdefghi9jklmnoVhpjq\rbstuvwxyEz{|}#~y{}v,.:!(#04E/home/vagrant/.rvm/gems/ruby-2.4.0@cmor/gems/shoulda-matchers-4.1.0/lib/shoulda/matchers/active_record/validate_uniqueness_of_matcher.rbE
EEEEvalidate_uniqueness_ofE# E initializeǪ@v:E scoped_toREcase_insensitive9Eignoring_case_sensitivityE allow_nilEexpects_to_allow_nil?!E allow_blank#Eexpects_to_allow_blank?%Esimple_descriptionEvalidate that :E isE uniqueE within the scope of +Ematches?Eensure in matches?.Edoes_not_match?Eensure in does_not_match?1Efailure_reason3Efailure_reason_when_negated5E%build_allow_or_disallow_value_matcherE.block in build_allow_or_disallow_value_matcherEcase_sensitivity_strategyE new_recordi>E(description_for_case_sensitive_qualifierȪ@EE case-sensitivelyE case-insensitivelyEE validationsEblock in validationsIEmatches_scopes_configuration?EExpected the validation Enot to be scoped to anything, Eto be scoped to E, Ebut it was scoped to E instead.E"but it was not scoped to anything.RE$does_not_match_scopes_configuration?Eto be scoped to nothing, Enot to be scoped to VE scopes_match?Eblock in scopes_match?YEinspected_expected_scopes\Einspected_actual_scopesE and E, andbEinspected_actual_sets_of_scopesE(block in inspected_actual_sets_of_scopesE(E)rhEexpected_scopesjEactual_sets_of_scopesEblock in actual_sets_of_scopespoEmatches_allow_nil?qEdoes_not_match_allow_nil?sEmatches_allow_blank?uEdoes_not_match_allow_blank?Eexisting_record~yEfind_or_create_existing_record{Efind_existing_record}Ecreate_existing_recordEblock in create_existing_recordE rescue in create_existing_recordEupdate_existing_record!Earbitrary_non_blank_valueExEhas_secure_password?Ebuild_new_recordEblock in build_new_recordEmatches_presence_of_attribute?E:E% does not seem to be an attribute on E.E%does_not_match_presence_of_attribute?E seems to be an attribute on Eattribute_present_on_model?E=Ematches_presence_of_scopes?E do not seem to be attributesE! does not seem to be an attributeE on E"does_not_match_presence_of_scopes?E seem to be attributesE seems to be an attributeEscopes_present_on_modelE block in scopes_present_on_modelEscopes_missing_on_modelE block in scopes_missing_on_modelE"matches_uniqueness_without_scopes?E)does_not_match_uniqueness_without_scopes?E2matches_uniqueness_with_case_sensitivity_strategy?PE9does_not_match_uniqueness_with_case_sensitivity_strategy?Eshould_test_case_sensitivity?E model_class?Erescue in model_class?Ematches_uniqueness_with_scopes?E(block in matches_uniqueness_with_scopes?E3block (2 levels) in matches_uniqueness_with_scopes?E&does_not_match_uniqueness_with_scopes?E/block in does_not_match_uniqueness_with_scopes?E:block (2 levels) in does_not_match_uniqueness_with_scopes?Esetting_next_value_forE ensure in setting_next_value_forEdummy_value_forEdummy_scalar_value_forEnext_value_forEnext_scalar_value_forEall_scopes_are_booleans?E!block in all_scopes_are_booleans?E,block (2 levels) in all_scopes_are_booleans?Eboolean_value?Ǫ Edefined_as_enum?Epolymorphic_type_attribute?Eavailable_enum_values_forE"block in available_enum_values_forEset_attribute_on!E!set_attribute_on_existing_record!Eset_attribute_on_new_record!E$attribute_setter_for_existing_recordE attribute_setters_for_new_recordEattribute_names_under_testEbuild_attribute_setterEexisting_value_readEexisting_value_writtenE column_forEcolumn_limit_forEmodelEfailure_message_prefaceEAfter taking the given E , setting E , whose :E is E‹E›E,, and saving it as the existing record, thenEGiven an existing E,E after setting E, thenE whose :E, afterE making a new E and setting E, the matcher expected the new E to beEattribute_changed_value_messageE$As indicated in the message above, :E seems to be changing certain values as they are set, and this could have something to do with why this test is failing. If you or something else has overridden the writer method for this attribute to normalize values by changing their case in any way (for instance, ensuring that the attribute is always downcased), then try adding `ignoring_case_sensitivity` onto the end of the uniqueness matcher. Otherwise, you may need to write the test yourself, or do something different altogether. E description_for_attribute_setterEits :E to Ea different value, E (read back as E as wellE1descriptions_for_attribute_setters_for_new_recordE,attribute_setter_descriptions_for_new_recordE5block in attribute_setter_descriptions_for_new_recordE!existing_and_new_values_are_same?!E(last_attribute_setter_used_on_new_record#Elast_value_set_on_new_recordE&E<<(E+E block in +Eblock (2 levels) in +,Eeach.Elast0E find_index_ofEblock in find_index_ofE"4EmessageEYour E' model has a uniqueness validation on :ET which is declared to be case-sensitive, but the value the uniqueness matcher used, EL, doesn't contain any alpha characters, so using it to test the case-sensitivity part of the validation is ineffective. There are two possible solutions for this depending on what you're trying to do here: a) If you meant for the validation to be case-sensitive, then you need to give the uniqueness matcher a saved instance of E with a value for :E that contains alpha characters. b) If you meant for the validation to be case-insensitive, then you need to add `case_sensitive: false` to the validation and add `case_insensitive` to the matcher. For more information, please see: http://matchers.shoulda.io/docs/vE&/file.NonCaseSwappableValueError.html EEvalidate_uniqueness_of works by matching a new record against an existing record. If there is no existing record, it will create one using the record you provide. While doing this, the following error was raised: E The best way to fix this is to provide the matcher with a record where any required attributes are filled in with valid values beforehand. EShouldaEMatchersE ActiveRecordEValidateUniquenessOfMatcherEattrEnewE ActiveModelEValidationMatcherEHelpersE@expected_messageE@optionsE@existing_record_createdE@failure_reasonE@failure_reason_when_negatedEAttributeSettersE@attribute_settersE attributeEcore#hash_from_aryEscopesEflattenEmapE[]=E[]E==E @attributeE descriptionEpresent?E @given_recordE @all_recordsE UniquenessE TestModelsE given_recordE#$!E remove_allEallEmatcherEmethodEfailure_message_preface=E attribute_changed_value_message=EargsEtapE @new_recordE ValidationsEUniquenessValidatorE validatorEis_a?E _validatorsEselectEempty?Eany?E to_sentenceExEinspected_sets_of_scopesEmany?EArrayEwrapE validationEoptionsErejectE!Eallows_value_ofEdisallows_value_ofE@existing_recordErecordEfirstEsaveEerrorEStatementInvalidEExistingRecordInvalidEraiseEcreateEvalueE!=EStringEnon_blank_valueElimitEis_string_valueElengthEyYyyyyyyy,z8zZzfzzzz{({4{a{{{{{{ ||+|P|w||||||};}m}}}}}#~/~g~~~~~LXdTi~ŀ ,8Djvׁ5AM(\ht؃!-Q~ф +dЅ Q 7Cnz%1gs&2ȉԉ*]&iË!-P\ȟ %Qƍҍ@LXԎ ;G|ď<HvĐАܐEQo{đ8Umے9So͓MĖݖ?[gAMY֘>J`lșԙ=gĚݚ 0j3NjѠ,Glס+Qnɢ #A`|ۣ0NeƤ)Hgĥ/Nc٦,Adȧ6_xۨ:Ti~ة&Iiת-Qkث-Jiܬ,F_wӭ:OpѮ 2Uׯ -Fj۰ +Isܱ.To #@`y̳س$Kg