diff --git a/extensao_para_string/2018-1/Andre_LFA/extensao_string_spec.rb b/extensao_para_string/2018-1/Andre_LFA/extensao_string_spec.rb new file mode 100644 index 0000000..442370c --- /dev/null +++ b/extensao_para_string/2018-1/Andre_LFA/extensao_string_spec.rb @@ -0,0 +1,54 @@ +require_relative '../../extensao_string.rb' +require 'minitest/autorun' + +describe 'String' do + + describe "#titleize" do + + it "escreve com letra maiúscula cada palavra em uma string" do + "string de teste".titleize.must_equal "String De Teste" + end + + it "funciona com strings de uma palavra" do + "string".titleize.must_equal "String" + end + + it "escreve com letra maiúscula string toda em maiúsculo" do + "STRING DE TESTE".titleize.must_equal "String De Teste" + end + + it "escreve com letra maiúscula strings com letras misturadas" do + "StRINg dE tEsTe".titleize.must_equal "String De Teste" + end + end + + describe '#blank?' do + + it "retorna true se a string é vazia" do + "".blank?.must_equal true + end + + it "retorna true se a string contém apenas espaços" do + " ".blank?.must_equal true + end + + it "retorna true se a string contém apenas tabs" do + # exemplo: "\t\t\t" + "\t\t\t".blank?.must_equal true + end + + it "retorna true se a string contém apenas espaços e tabs" do + " \t\t\t\t \t \t \t".blank?.must_equal true + end + + it "retorna false se a string contém uma letra" do + "s".blank?.must_equal false + end + + it "retorna false se a string contém um número" do + "string2".blank?.must_equal false + end + end + +end + \ No newline at end of file diff --git a/extensao_para_string/2018-1/Andre_LFA/extensao_string_test.rb b/extensao_para_string/2018-1/Andre_LFA/extensao_string_test.rb new file mode 100644 index 0000000..cb4fe33 --- /dev/null +++ b/extensao_para_string/2018-1/Andre_LFA/extensao_string_test.rb @@ -0,0 +1,46 @@ +require 'minitest/autorun' +require_relative '../../extensao_string.rb' + +class ExtensaoStringTest < Minitest::Test + + def test_titleize_escreve_com_maiuscula_cada_palavra_em_uma_string + assert_equal "string de teste".titleize, 'String De Teste' + end + + def test_titleize_escreve_com_maiuscula_strings_de_uma_palavra + assert_equal "string".titleize, 'String' + end + + def test_titleize_escreve_com_maiuscula_uma_string_toda_em_maiusculo + assert_equal "STRING DE TESTE".titleize, 'String De Teste' + end + + def test_titleize_escreve_com_maiuscula_uma_string_com_letras_misturadas + assert_equal "sTrIng dE tEsTe".titleize, 'String De Teste' + end + + def test_blank_retorna_true_quando_a_string_e_vazia + assert_equal "".blank?, true + end + + def test_blank_retorna_true_quando_a_string_contem_apenas_espacos + assert_equal " ".blank?, true + end + + def test_blank_retorna_true_quando_a_string_contem_apenas_tabs + # exemplo: "\t\t\t" + assert_equal "\t\t\t".blank?, true + end + + def test_blank_retorna_true_quando_a_string_contem_apenas_espacos_e_tabs + assert_equal " \t \t \t ".blank?, true + end + + def test_blank_retorna_false_se_a_string_contem_uma_letra + assert_equal "a".blank?, false + end + + def test_blank_retorna_false_se_a_string_contem_um_numero + assert_equal "string2".blank?, false + end +end diff --git a/modulo_para_numero/2018-1/Andre_LFA/moeda_test.rb b/modulo_para_numero/2018-1/Andre_LFA/moeda_test.rb new file mode 100644 index 0000000..fd48ed4 --- /dev/null +++ b/modulo_para_numero/2018-1/Andre_LFA/moeda_test.rb @@ -0,0 +1,63 @@ +require 'minitest/autorun' +require_relative '../../moeda.rb' + +describe 'Moeda' do + + include Moeda + + describe '#numero_para_moeda' do + + describe 'usando valores padrões' do + + it "formata corretamente um inteiro" do + numero_para_moeda(265).must_equal "R$265,00" + end + + it "formata corretamente um float" do + numero_para_moeda(17.50).must_equal "R$17,50" + end + + it "formata corretamente uma string" do + numero_para_moeda("845").must_equal "R$845,00" + end + + it "usa delimitadores para números muito grandes" do + numero_para_moeda(76554212).must_equal "R$76.554.212,00" + end + + it "não tem delimitadores para números pequenos" do + numero_para_moeda(2). must_equal "R$2,00" + end + end + + describe 'usando opções customizadas' do + + it 'permite a mudança da :unidade' do + numero_para_moeda(256, :unidade => "Y$").must_equal "Y$256,00" + end + + it 'permite a mudança da :precisao' do + numero_para_moeda(2987, :precisao => 3).must_equal "R$2.987,000" + end + + it 'esconde o separador se a :precisao é 0' do + numero_para_moeda(987, :precisao => 0).must_equal "R$987" + end + + it 'permite a mudança do :delimitador' do + numero_para_moeda(58761, :delimitador => "'").must_equal "R$58'761,00" + end + + it 'permite a mudança do :separador' do + numero_para_moeda(58761, :separador => "'").must_equal "R$58.761'00" + end + + it 'formata corretamente usando múltiplas opções' do + numero_para_moeda(58761, :separador => "'", :delimitador => "#", :unidade => 'RU$').must_equal "RU$58#761'00" + end + + end + + end + +end