Skip to content

Respostas desafio qa-recruiting-brazil #62

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions KataCheckout.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class Katacheckout {

Map<String, Integer> rules = new HashMap<String, Integer>();
{
rules.put("A", 50); rules.put("B", 30);
rules.put("C", 20); rules.put("D", 15);
}
int totalCompras;
int valor;

public void scan(String itens) {

int valor = rules.get(itens);
totalCompras += valor;
ArrayList<String> itensRepetidos = new ArrayList<String>();

itensRepetidos.add(itens);
int i = Collections.frequency(itensRepetidos, itens);

if (itens.contains("AAA")) {
totalCompras -=20;
}

if (itens.contains("BB")) {
totalCompras -= 15;
}
}
public int totalCompras() {
return totalCompras;

}
public void zeraValores() {
valor = 0;
totalCompras = 0;
}
}
61 changes: 61 additions & 0 deletions Testes.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import static org.junit.Assert.*;
import org.junit.Test;

public class Testes {

private void assertEquals(int i, int price) {
// TODO Auto-generated method stub

}
@Test
public void test_incremental() {

Katacheckout desc = new Katacheckout();

desc.scan("A");
assertEquals(50, desc.totalCompras());
desc.scan("B");
assertEquals(80, desc.totalCompras());
desc.scan("A");
assertEquals(130, desc.totalCompras());
desc.scan("A");
assertEquals(160, desc.totalCompras());
desc.scan("B");
assertEquals(175, desc.totalCompras());

}

@Test
public void test_totals() {

assertEquals(0, price(""));
assertEquals(50, price("A"));
assertEquals(80, price("AB"));
assertEquals(115, price("CDBA"));

assertEquals(100, price("AA"));
assertEquals(130, price("AAA"));
assertEquals(180, price("AAAA"));
assertEquals(230, price("AAAAA"));
assertEquals(260, price("AAAAAA"));

assertEquals(160, price("AAAB"));
assertEquals(175, price("AAABB"));
assertEquals(190, price("AAABBD"));
assertEquals(190, price("DABABA"));

}

public static int price(String itens) {

Katacheckout desc = new Katacheckout();
desc.zeraValores();

for (int i = 0; i < itens.length(); i++) {
String item = Character.toString(itens.charAt(i));
desc.scan(item);
}
return desc.totalCompras();

}
}
81 changes: 81 additions & 0 deletions whatsapp.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#language: pt

#Especificação de duas funcionalidades do Whatsapp (não importa se o app é Android, iOS,
#Windows Phone ou versão Web) em Gherkin ou Gauge
#Cada especificação deve conter ao menos um cenário de teste

#Especificação da primeira funcionalidade considerando o app para dispositivos android
@Bloqueio @BloquearUsuario @Smoke
Funcionalidade: Bloqueio de contatos
A fim de realizar o bloqueio de um contato
Como um usuario do whatsapp
Desejo bloquear um outro contato
Para não interagir com o mesmo

Cenario de Fundo: Abrir aplicativo
Dado que eu tenha um usuário válido
Então na tela devo abrir o aplicativo whatsapp

#declaracao de cenario na forma imperativa
@BloqueioTelaConversas
Cenário: Bloquear um contato por tela de conversas
Dado que na tela de conversas
Quando eu clicar na conversa do contato a ser bloqueado
E a conversa for exibida
E seleciono o botão do menu da conversa
Quando clicar na opção mais
E seleciono a opção bloquear
E confirmo clicando em "bloquear"
Então eu devo receber uma mensagem de confirmação

#declaracao de cenario na forma declarativa
@BloqueioTelaContatos
Cenário: Bloquear um contato por tela de contatos
Dado que na tela de contatos
Quando seleciono o contato desejado
E bloqueio o mesmo
Entao recebo a mensagem de confirmacao

@Desbloqueio @DesbloquearContato @Smoke
Funcionalidade: Desbloqueio de contatos
Afim de desbloquear um contato bloqueado
Como usuário do whatsapp
Desejo remover o bloqueio de um contato
Para voltar a interagir menssagem deste contato

@DesbloquearContato
Cenário: Desbloquear um contato na tela de contatos
Dado que com a tela de contatos aberta
Quando eu pressionar o contato bloqueado
E visualizar a opção de "Desbloquear Contato"
Então devo visualizar o contato desbloquado

@DesbloquerContatosLista
Cenário: Desbloquear um contato na lista de contatos bloqueados
Dado que na tela de conversas
Quando clicar do menu do whatsapp
E selecionar a opção "Configurações"
Então a tela de configurações deve ser exibida
E devo selecionar a opção "Privacidade"
Então seleciono a opção "Contatos bloqueados"
E devo visualizar a lista de contatos bloquados
Então pressiono o contato por alguns segundos
E devo visualizar e selecionar a opção "Desbloquear contato"
Então eu não devo ver mais o contato na minha lista de contatos bloquados

@MudarPrivacidadeFotoPerfil
Funcionalidade: Altera Privacidade da foto do perfil

Esquema do Cenário: Mudar o estado de visualização da foto do perfil
Dado que na tela de Privacidade
Quando clicar na opção Foto do Perfil
E selecionar o radiobutton "<opcao>"
Então a foto do perfil será "<estado>"
Exemplos:
| opcao | estado |
| Todos | Qualquer usuario visualiza |
| Meus contatos | Apenas contatos salvos |
| Ninguem | Nenhum outro usuario |