Programação com Objectos/Projecto de Programação com Objectos/Testes Automáticos 2022-2023

From Wiki**3

< Programação com Objectos‎ | Projecto de Programação com Objectos
AVISOS - Avaliação em Época Normal

Esclarecimento de dúvidas:

  • Consultar sempre o corpo docente atempadamente: presencialmente ou através do endereço oficial da disciplina [1].
  • Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
  • Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.

Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Programação com Objectos):

  • O material de apoio é de uso obrigatório e não pode ser alterado.
  • Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.

Processo de avaliação (ver informação completa em Avaliação do Projecto):

  • Datas: 2022/10/04 12:00 (inicial); 2022/10/21 12:00 (intercalar); 2022/11/04 12:00 (final); 2022/11/04 (early bird) 2022/11/07 (normal) (teste prático).
  • Todas as entregas são cruciais para o bom desenvolvimento do projecto, sendo obrigatórias: a não realização de uma entrega implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina.
  • Verificar atempadamente (até 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de avaliação, incluindo a capacidade de acesso ao repositório CVS.
  • Apenas se consideram para avaliação os projectos existentes no repositório CVS oficial.
  • Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório ou de outros materiais, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.
  • A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
  • Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação.
Material de Uso Obrigatório
As bibliotecas po-uilib e o conteúdo inicial do CVS são de uso obrigatório:
  • po-uilib (classes de base) po-uilib-202209081626.tar.bz2 (não pode ser alterada) - javadoc
  • prr-core (classes do "core") (via CVS) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
  • prr-app (classes de interacção) (via CVS) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio.
Uso Obrigatório: Repositório CVS
Apenas se consideram para avaliação os projectos existentes no repositório CVS oficial.

Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.

Durante a execução do projecto são realizados testes automáticos sobre o conteúdo do repositório, sendo publicados diariamente os resultados dos testes (apenas durante a Época Normal).

Ficheiros removidos do módulo prr-core (durante os testes) e substituídos por versões canónicas
prr-core/Makefile
prr-core/src/prr/exceptions/ImportFileException.java
prr-core/src/prr/exceptions/MissingFileAssociationException.java
prr-core/src/prr/exceptions/UnavailableFileException.java
prr-core/src/prr/exceptions/UnrecognizedEntryException.java
Ficheiros removidos do módulo prr-app (durante os testes) e substituídos por versões canónicas
prr-app/Makefile
prr-app/src/prr/app/App.java
prr-app/src/prr/app/clients/Label.java
prr-app/src/prr/app/clients/Menu.java
prr-app/src/prr/app/clients/Message.java
prr-app/src/prr/app/clients/Prompt.java
prr-app/src/prr/app/exceptions/DuplicateClientKeyException.java
prr-app/src/prr/app/exceptions/DuplicateTerminalKeyException.java
prr-app/src/prr/app/exceptions/FileOpenFailedException.java
prr-app/src/prr/app/exceptions/InvalidTerminalKeyException.java
prr-app/src/prr/app/exceptions/Message.java
prr-app/src/prr/app/exceptions/UnknownClientKeyException.java
prr-app/src/prr/app/exceptions/UnknownTerminalKeyException.java
prr-app/src/prr/app/lookups/Label.java
prr-app/src/prr/app/lookups/Menu.java
prr-app/src/prr/app/lookups/Message.java
prr-app/src/prr/app/lookups/Prompt.java
prr-app/src/prr/app/main/DoOpenMenuClient.java
prr-app/src/prr/app/main/DoOpenMenuTerminals.java
prr-app/src/prr/app/main/DoOpenMenuLookups.java
prr-app/src/prr/app/main/Label.java
prr-app/src/prr/app/main/Menu.java
prr-app/src/prr/app/main/Message.java
prr-app/src/prr/app/main/Prompt.java
prr-app/src/prr/app/terminal/Label.java
prr-app/src/prr/app/terminal/Menu.java
prr-app/src/prr/app/terminal/Message.java
prr-app/src/prr/app/terminal/Prompt.java
prr-app/src/prr/app/terminals/Label.java
prr-app/src/prr/app/terminals/Menu.java
prr-app/src/prr/app/terminals/Message.java
prr-app/src/prr/app/terminals/Prompt.java
prr-app/src/prr/app/terminal/TerminalCommand.java

Entregas Futuras

(todas as entregas foram realizadas)

Entregas Passadas

Testes de Presença de Diagramas UML

Durante o período que antecede a primeira entrega (UML), são executados testes de presença dos diagramas no repositório.

Os projectos não são executados, mas são comunicados erros de compilação para projectos que já tenham commits.

Resultados dos testes

Os resultados dos testes de presença estão disponíveis nos seguintes locais:

Grupos que tenham as anotações NOTHING COMMITTED ou UML MISSING (estando em falta o diagrama prr-core) não estão em condições de aprovação à disciplina.

Pacotes de Testes para a Entrega Intermédia

Os pacotes de testes para o projecto são os seguintes:

Resultados dos testes

Os resultados da execução dos vários testes estão disponíveis nos seguintes locais:

Grupos que tenham a anotação NOTHING COMMITTED não estão em condições de aprovação à disciplina.

Descrição dos testes da entrega intermédia (diários)
Abrir e guardar estado

A-01-01-M-ok - Abrir aplicação sem import e ver os menus todos 
A-01-02-M-ok - Abrir aplicação com import de cliente; ver e guardar em app01.dat
A-01-03-M-ok - Abrir aplicação vazia; carregar app01.dat e ver clientes  
A-01-04-M-ok - Abrir aplicação com import de terminal e cliente; ver terminais; guardar em app02.dat 
A-01-05-M-ok - Abrir aplicação vazia; carregar app02.dat e ver clientes e terminais
A-01-06-M-ok - Abrir ficheiro não existente 

Visualizar cliente

A-03-01-M-ok - Visualizar cliente não existente com clientes carregados
A-03-02-M-ok - Visualizar cliente não existente sem clientes carregados 
A-03-03-M-ok - Visualizar cliente existente com vários clientes carregados  

Visualizar clientes

A-04-01-M-ok Ver lista de clientes importados por ordem 

Registar cliente

A-05-01-M-ok Registar cliente em rede de terminais sem clientes  
A-05-02-M-ok Registar cliente em rede de terminais com clientes  
A-05-04-M-ok Registar cliente com chave duplicada 

Registar terminal 

A-07-01-M-ok Registar terminal BASIC num cliente sem terminais   
A-07-02-M-ok Registar terminal FANCY num cliente sem terminais  
A-07-03-M-ok Registar terminal não BASIC/FANCY (entrada com erros) num cliente sem terminais
A-07-04-M-ok Registar terminal BASIC num cliente não existente  
A-07-05-M-ok Registar terminal BASIC num cliente com id repetido no mesmo cliente   

Mostrar todos os terminais

A-08-01-M-ok Mostrar terminais com import com um único terminal em ON  
A-08-02-M-ok Mostrar terminais com import com um único terminal em OFF
A-08-04-M-ok Mostrar terminais com import com vários terminais ordenados 
A-08-06-M-ok Mostrar terminais com import com vários terminais e novo terminal inserido no fim

Menu de consola de um terminal

A-09-01-M-ok Seleccionar terminal que não existe  
A-09-02-M-ok Seleccionar um terminal de um cliente com um terminal 
A-09-03-M-ok Seleccionar um terminal de um cliente com vários terminais

Mostrar terminais sem actividade

A-10-01-M-ok - Carregar clientes com um terminal e apresentar os terminais sem actividade 
A-10-02-M-ok - Carregar clientes cada um com um terminal e apresentar os terminais sem actividade
Descrição dos testes da entrega intermédia (avaliação)
Abrir e guardar estado

A-01-01-M-ok Abrir aplicação sem import e ver os menus todos
A-01-02-M-ok Abrir aplicação com import de cliente; ver e guardar em app01.dat
A-01-03-M-ok Abrir aplicação vazia; carregar app01.dat e ver clientes
A-01-04-M-ok Abrir aplicação com import de terminal e cliente; ver terminais; guardar em app02.dat
A-01-05-M-ok Abrir aplicação vazia; carregar app02.dat e ver clientes e terminais
A-01-06-M-ok Abrir ficheiro não existente
A-01-07-M-ok Abrir aplicação com import de cliente; guardar app03.dat; criar novo cliente; guardar
A-01-08-M-ok Abrir aplicação vazia; carregar app03.dat e ver cliente; cria novo cliente; guardar
A-01-09-M-ok Abrir aplicação com import; carregar app03.dat e ver clientes

Visualizar cliente

A-03-01-M-ok Visualizar cliente não existente com clientes carregados
A-03-02-M-ok Visualizar cliente não existente sem clientes carregados
A-03-03-M-ok Visualizar cliente existente com chave igual com vários clientes carregados
A-03-04-M-ok Visualizar cliente do meio e último existente com vários clientes carregados

Visualizar clientes

A-04-01-M-ok Ver lista de clientes importados por ordem
A-04-02-M-ok Ver lista de clientes importados desordenado
A-04-03-M-ok Ver lista de clientes importados desordenado com maiúsculas e minúsculas

Registar cliente

A-05-01-M-ok Registar cliente em rede de terminais sem clientes
A-05-02-M-ok Registar cliente no fim da lista de clientes
A-05-03-M-ok Registar cliente no início da lista/no meio da lista
A-05-04-M-ok Registar parceito com chave duplicada

Registar terminal

A-07-01-M-ok Registar terminal BASIC num cliente sem terminais
A-07-02-M-ok Registar terminal FANCY num cliente sem terminais
A-07-03-M-ok Registar terminal não FANCY E BASIC num cliente sem terminais
A-07-04-M-ok Registar terminal BASIC num cliente não existente
A-07-05-M-ok Registar terminal BASIC num cliente com id repetido no mesmo cliente
A-07-06-M-ok Registar terminal BASIC num cliente com id repetido em clientes distintos
A-07-07-M-ok Registar terminal BASIC num cliente com id inválido (6 caracteres mas com letras)
A-07-08-M-ok Registar terminal BASIC com id 000001 num cliente existente

Mostrar todos os terminais

A-08-01-M-ok Mostrar terminais com import com um único terminal  em ON
A-08-02-M-ok Mostrar terminais com import com um único terminal  em OFF
A-08-03-M-ok Mostrar terminais com import com um único terminal  em SILENCE
A-08-04-M-ok Mostrar terminais com import com vários terminais ordenados
A-08-05-M-ok Mostrar terminais com import com vários terminais desordenados
A-08-06-M-ok Mostrar terminais com import com vários terminais, insere um terminal no fim
A-08-07-M-ok Mostrar terminais com import com vários terminais, insere um terminal no início
A-08-08-M-ok Mostrar terminais com import com vários terminais, insere um terminal no meio

Menu de consola de um terminal

A-09-01-M-ok Selecionar terminal que não existe
A-09-02-M-ok Selecionar um terminal de um cliente com um terminal
A-09-03-M-ok Selecionar um terminal de um cliente com vários terminais
A-09-04-M-ok Selecionar terminal que não existe com 5 caracteres

Mostrar terminais sem actividade

A-10-01-M-ok Carregar clientes com um terminal e apresentar os terminais sem actividade
A-10-02-M-ok Carregar clientes cada um com um terminal e apresentar os terminais sem actividade
A-10-03-M-ok Carregar clientes cada um com vários terminais e apresentar os terminais sem actividade
A-10-04-M-ok Carregar clientes sem terminais, ver terminais sem actividade, adicionar um terminal e repetir.


Pacotes de Testes para a Entrega Final

Os pacotes de testes para o projecto são os seguintes:

Resultados dos testes

Os resultados da execução dos vários testes estão disponíveis nos seguintes locais:

Grupos que tenham a anotação NOTHING COMMITTED não estão em condições de aprovação à disciplina.

Descrição dos testes da entrega final (diários)
Abrir e guardar estado

# A-01-01-M-ok - Abrir aplicação sem import e ver os menus todos
# A-01-02-M-ok - Abrir aplicação com Cliente e vê e guardar em app01.dat
# A-01-03-M-ok - Abrir aplicação vazia, carrega app01.dat e vê Clientes
# A-01-04-M-ok - Abrir aplicação com Terminal e Cliente, vê terminais e guarda em app02.dat
# A-01-05-M-ok - Abrir aplicação vazia, carrega app02.dat e vê Clientes e terminais
# A-01-06-M-ok - Abrir ficheiro não existente
# A-01-07-M-ok - Abrir aplicação com cliente, guarda app03.dat, cria novo cliente, guarda
# A-01-08-M-ok - Abrir aplicação vazia, carrega app03.dat e vê cliente cria novo cliente, guarda
# A-01-09-M-ok - Abrir aplicação com import, carrega app03.dat e vê clientes

Visualizar cliente

# A-03-01-M-ok - Visualizar cliente não existente com clientes carregados
# A-03-02-M-ok - Visualizar cliente não existente sem clientes carregados
# A-03-03-M-ok - Visualizar cliente existente com vários clientes carregados
# A-03-04-M-ok - Visualizar cliente do meio e último existente com vários clientes carregados

Visualizar clientes

# A-04-01-M-ok ver lista de clientes importados por ordem
# A-04-02-M-ok ver lista de clientes importados desordenado
# A-04-03-M-ok ver lista de clientes importados desordenado com maiúsculas e minúsculas

Registar cliente

# A-05-01-M-ok registar cliente em rede de terminais sem clientes
# A-05-02-M-ok registar cliente em rede de terminais com clientes no fim da lista de clientes
# A-05-03-M-ok registar cliente no início da lista/no meio da lista
# A-05-04-M-ok registar cliente com chave duplicada

Activar/Desactivar recepção de contactos falhados  - Done

# A-06-01-M-ok desactivar cliente activo
# A-06-02-M-ok desactivar cliente inactivo
# A-06-03-M-ok activar cliente inactivo
# A-06-04-M-ok activar cliente activo
# A-06-05-M-ok activar/desactivar várias vezes

Registar terminal

# A-07-01-M-ok registar terminal BASIC num cliente sem terminais
# A-07-02-M-ok registar terminal FANCY num cliente sem terminais
# A-07-03-M-ok registar terminal não FANCY E BASIC num cliente sem terminais
# A-07-04-M-ok registar terminal BASIC num cliente não existente
# A-07-05-M-ok registar terminal BASIC num cliente com id repetido no mesmo cliente
# A-07-06-M-ok registar terminal BASIC num cliente com id repetido em clientes distintos
# A-07-07-M-ok registar terminal BASIC num cliente com id inválido (6 caracteres mas com letras)
# A-07-08-M-ok registar terminal BASIC com id 000001 num cliente existente

Mostrar todos os terminais

# A-08-01-M-ok mostrar terminais com import com um único terminal  em ON
# A-08-02-M-ok mostrar terminais com import com um único terminal  em OFF
# A-08-03-M-ok mostrar terminais com import com um único terminal  em SILENCE
# A-08-04-M-ok mostrar terminais com import com vários terminais ordenados
# A-08-05-M-ok mostrar terminais com import com vários terminais desordenados
# A-08-06-M-ok mostrar terminais com import com vários terminais, insere um terminal no fim
# A-08-07-M-ok mostrar terminais com import com vários terminais, insere um terminal no início
# A-08-08-M-ok mostrar terminais com import com vários terminais, insere um terminal no meio

Menu de consola de um terminal

# A-09-01-M-ok selecionar terminal que não existe
# A-09-02-M-ok selecionar um terminal de um cliente com um terminal
# A-09-03-M-ok selecionar um terminal de um cliente com vários terminais
# A-09-04-M-ok selecionar terminal que não existe com 5 caracteres

Mostrar terminais sem actividade

# A-10-01-M-ok - carregar clientes com um terminal e apresentar os terminais sem actividade
# A-10-02-M-ok - carregar clientes cada um com um terminal e apresentar os terminais sem actividade
# A-10-03-M-ok - carregar clientes cada um com vários terminais e apresentar os terminais sem actividade
# A-10-04-M-ok - carregar clientes sem terminais, ver terminais sem actividade, adicionar um terminal e repetir.

Fazer Comunicação de texto

# A-11-01-M-ok - Fazer comunicação de texto entre dois terminais IDLE do mesmo cliente
# A-11-02-M-ok - Fazer comunicação de texto entre dois terminais IDLE de clientes distintos
# A-11-03-M-ok - Fazer comunicação de texto a partir de um terminal SILENCE
# A-11-04-M-ok - Fazer comunicação de texto para um terminal OFF
# A-11-05-M-ok - Fazer comunicação de texto para um terminal SILENCE
# A-11-06-M-ok - Fazer comunicação de texto para um terminal BUSY
# A-11-07-M-ok - Fazer comunicação de texto para um terminal não existente
# A-11-08-M-ok - Fazer comunicação de texto de um terminal OFF

Fazer Comunicação Interactiva

# A-12-01-M-ok - Fazer comunicação de voz entre dois terminais IDLE do mesmo cliente
# A-12-02-M-ok - Fazer comunicação de voz entre dois terminais IDLE de clientes distintos
# A-12-03-M-ok - Fazer comunicação de voz a partir de um terminal SILENCE para IDLE
# A-12-04-M-ok - Fazer comunicação de voz para um terminal OFF
# A-12-05-M-ok - Fazer comunicação de voz para um terminal SILENCE
# A-12-06-M-ok - Fazer comunicação de voz para um terminal BUSY a receber comunicação
# A-12-07-M-ok - Fazer comunicação de voz para um terminal BUSY a fazer comunicação
# A-12-08-M-ok - Fazer comunicação de voz para um terminal não existente
# A-11-09-M-ok - Fazer comunicação interactiva e verificar que só pode ser VOICE/VIDEO
# A-12-10-M-ok - Fazer comunicação de video entre dois terminais IDLE do mesmo cliente
# A-12-11-M-ok - Fazer comunicação de video entre dois terminais IDLE de clientes distintos
# A-12-12-M-ok - Fazer comunicação de video a partir de um terminal SILENCE para IDLE
# A-12-13-M-ok - Fazer comunicação de video para um terminal SILENCE
# A-12-14-M-ok - Fazer comunicação de video para um terminal OFF

Ver comunicação em curso

# A-13-01-M-ok Ver comunicação voz em curso entre terminais BASIC
# A-13-02-M-ok Ver comunicação voz em curso entre entre terminais BASIC  e FANCY
# A-13-03-M-ok Ver comunicação video em curso
# A-13-04-M-ok Ver comunicação em curso de terminal idle
# A-13-05-M-ok Ver comunicação em curso de terminal idle mas há outro com comunicação em curso

Terminar comunicação

# A-14-01-M-ok Fazer comunicação voz entre dois IDLE, terminar comunicação e ver comunicação em curso e ver terminais
# A-14-02-M-ok Fazer comunicação voz entre dois IDLE, e tentar terminar comunicação do terminal chamado
# A-14-03-M-ok Fazer comunicação voz entre dois IDLE, terminar comunicação e ver comunicação em curso e ver terminais
# A-14-04-M-ok Fazer comunicação voz entre um IDLE e um SILENCE, terminar comunicação e ver comunicação em curso e ver terminais
# A-14-05-M-ok Fazer comunicação video entre um IDLE e um SILENCE, terminar comunicação e ver comunicação em curso e ver terminais

Custo das comunicações - I

# A-15-01-M-ok - Ver custo de comunicação texto com N < 50 para Normal
# A-15-02-M-ok - Ver custo de comunicação texto com N = 50 e N > 100 para Normal
# A-15-03-M-ok - Ver custo de comunicação texto com N > 100 e N =100 para Normal
# A-15-04-M-ok - Ver custo de comunicação voz  para Normal
# A-15-05-M-ok - Ver custo de comunicação vídeo para Normal

Adicionar amigo

# A-16-01-M-ok - Adicionar um terminal amigo e ver amigos
# A-16-02-M-ok - Adicionar o mesmo terminal amigo duas vezes e ver amigos
# A-16-03-M-ok - Adicionar um terminal amigo existente e outro não existente
# A-16-04-M-ok - Adicionar vários terminais amigos por ordem
# A-16-05-M-ok - Adicionar vários terminais amigos por ordem via import
# A-16-06-M-ok - Adicionar vários terminais amigos por desordenados
# A-16-07-M-ok - Adicionar um terminal como amigo de si próprio

Remover amigo

# A-17-01-M-ok - Remover um terminal amigo de um terminal sem amigos
# A-17-02-M-ok - Remover terminal não existente e não amigo de um terminal com amigos
# A-17-03-M-ok - Remover um terminal amigo de um terminal com um amigo
# A-17-04-M-ok - Remover um terminal amigo de um terminal com vários amigos e ficar sem amigos

Notificações

# A-18-01-M-ok - Activar recepção de contactos falhados para cliente com recepção activa
# A-18-02-M-ok - Desctivar recepção de contactos falhados para cliente com recepção activa
# A-18-03-M-ok - Activar recepção de contactos falhados para cliente com recepção inactiva
# A-18-04-M-ok - Desctivar recepção de contactos falhados para cliente com recepção inactiva
# A-18-05-M-ok - Fazer comunicação voz para terminal Off, ligar terminal
# A-18-06-M-ok - Fazer comunicação voz para terminal Off...
# A-18-07-M-ok - Fazer comunicação vídeo para terminal Off, ligar terminal
# A-18-08-M-ok - Fazer comunicação vídeo para terminal Off...
# A-18-09-M-ok - Fazer comunicação voz para terminal Off, ligar terminal ver que notificações são removidas
# A-18-10-M-ok - Fazer comunicação texto para terminal Off, ligar terminal
# A-18-11-M-ok - Fazer comunicação texto para terminal Off, colocar terminal em silêncio
# A-18-12-M-ok - Fazer comunicação vídeo e voz de terminais de clientes distintos para terminal Off, ligar terminal
# A-18-13-M-ok - Fazer comunicação vídeo e voz do mesmo terminal para terminal Off, ligar terminal
# A-18-14-M-ok - Fazer comunicação vídeo e voz de dois terminais do mesmo cliente para terminal Off, ligar terminal

Operações sobre Terminais

# A-19-01-M-ok - Ligar terminal desligado
# A-19-02-M-ok - Ligar terminal em silêncio
# A-19-03-M-ok - Ligar terminal ligado
# A-19-04-M-ok - Colocar em silêncio terminal desligado e terminal ligado
# A-19-05-M-ok - Colocar em silêncio terminal em silêncio
# A-19-06-M-ok - Desligar terminal em silêncio e terminal ligado
# A-19-07-M-ok - Desligar terminal desligado
Descrição dos testes da entrega final (avaliação)
Guardar/Abrir Estado

A-01-01-M-ok - Abrir aplicação sem import e ver os menus todos
A-01-02-M-ok - Abrir aplicação com Cliente e vê e guardar em app01.dat
A-01-03-M-ok - Abrir aplicação vazia, carrega app01.dat e vê Clientes
A-01-04-M-ok - Abrir aplicação com Terminal e Cliente, vê terminais e guarda em app02.dat
A-01-05-M-ok - Abrir aplicação vazia, carrega app02.dat e vê Clientes e terminais
A-01-06-M-ok - Abrir ficheiro não existente
A-01-07-M-ok - Abrir aplicação com cliente, guarda app03.dat, cria novo cliente, guarda
A-01-08-M-ok - Abrir aplicação vazia, carrega app03.dat e vê cliente cria novo cliente, guarda
A-01-09-M-ok - Abrir aplicação com import, carrega app03.dat e vê clientes
A-01-10-M-ok - criar comunicações guardar estado app04.dat
A-01-11-M-ok - abrir app04.dat , ver e criar notificações, guardar estado.
A-01-12-M-ok - abrir app04.dat , ver notificações.

Mostrar informação global sobre pagamentos e díıvidas

A-02-01-M-ok - Fazer cálculo para o caso de uma rede sem clientes e terminais e só com clientes
A-02-02-M-ok - Fazer cálculo para o caso de uma rede com clientes com um terminal e várias comunicações e nenhuma paga
A-02-03-M-ok - Fazer cálculo para o caso de uma rede com clientes com vários terminais e várias comunicações e nenhuma paga
A-02-06-M-ok - Fazer cálculo para o caso de uma rede com clientes com vários terminais e dívidas e pagamentos

Visualizar cliente

A-03-01-M-ok - Visualizar cliente não existente com clientes carregados
A-03-02-M-ok - Visualizar cliente não existente sem clientes carregados
A-03-03-M-ok - Visualizar cliente existente com vários clientes carregados
A-03-04-M-ok - Visualizar cliente do meio e último existente com vários clientes carregados

Visualizar Clientes

A-04-01-M-ok ver lista de clientes importados por ordem
A-04-02-M-ok ver lista de clientes importados desordenado
A-04-03-M-ok ver lista de clientes importados desordenado com maiúsculas e minúsculas

Registar Cliente

A-05-01-M-ok registar cliente em rede de terminais sem clientes
A-05-02-M-ok registar cliente em rede de terminais com clientes no fim da lista de clientes
A-05-03-M-ok registar cliente no início da lista/no meio da lista
A-05-04-M-ok registar cliente com chave duplicada

Activar/Desactivar recepção de contactos falhados

A-06-01-M-ok desactivar cliente activo
A-06-02-M-ok desactivar cliente inactivo
A-06-03-M-ok activar cliente inactivo
A-06-04-M-ok activar cliente activo
A-06-05-M-ok activar/desactivar várias vezes

Registar terminal

A-07-01-M-ok registar terminal BASIC num cliente sem terminais
A-07-02-M-ok registar terminal FANCY num cliente sem terminais
A-07-03-M-ok registar terminal não FANCY E BASIC num cliente sem terminais
A-07-04-M-ok registar terminal BASIC num cliente não existente
A-07-05-M-ok registar terminal BASIC num cliente com id repetido no mesmo cliente
A-07-06-M-ok registar terminal BASIC num cliente com id repetido em clientes distintos
A-07-07-M-ok registar terminal BASIC num cliente com id inválido (6 caracteres mas com letras)
A-07-08-M-ok registar terminal BASIC com id 000001 num cliente existente
A-07-09-M-ok registar terminal BASIC num cliente com id inválido (menos do que 6 dígitos e mais do 7 dígitos)

Mostrar todos os terminais

A-08-01-M-ok mostrar terminais com import com um único terminal  em ON
A-08-02-M-ok mostrar terminais com import com um único terminal  em OFF
A-08-03-M-ok mostrar terminais com import com um único terminal  em SILENCE
A-08-04-M-ok mostrar terminais com import com vários terminais ordenados
A-08-05-M-ok mostrar terminais com import com vários terminais desordenados
A-08-06-M-ok mostrar terminais com import com vários terminais, insere um terminal no fim
A-08-07-M-ok mostrar terminais com import com vários terminais, insere um terminal no início
A-08-08-M-ok mostrar terminais com import com vários terminais, insere um terminal no meio

Menu de consola de um terminal

A-09-01-M-ok selecionar terminal que não existe
A-09-02-M-ok selecionar um terminal de um cliente com um terminal
A-09-03-M-ok selecionar um terminal de um cliente com vários terminais
A-09-04-M-ok selecionar terminal que não existe com 5 caracteres

Mostrar terminais sem actividade

A-10-01-M-ok - carregar clientes com um terminal e apresentar os terminais sem actividade
A-10-02-M-ok - carregar clientes cada um com um terminal e apresentar os terminais sem actividade
A-10-03-M-ok - carregar clientes cada um com vários terminais e apresentar os terminais sem actividade
A-10-04-M-ok - carregar clientes sem terminais, ver terminais sem actividade, adicionar um terminal e repetir.

Fazer Comunicação de texto

A-11-01-M-ok - Fazer comunicação de texto entre dois terminais IDLE do mesmo cliente
A-11-02-M-ok - Fazer comunicação de texto entre dois terminais IDLE de clientes distintos
A-11-03-M-ok - Fazer comunicação de texto a partir de um terminal SILENCE
A-11-04-M-ok - Fazer comunicação de texto para um terminal OFF
A-11-05-M-ok - Fazer comunicação de texto para um terminal SILENCE
A-11-06-M-ok - Fazer comunicação de texto para um terminal BUSY
A-11-07-M-ok - Fazer comunicação de texto para um terminal não existente
A-11-08-M-ok - Fazer comunicação de texto de um terminal OFF
A-11-09-M-ok - Fazer comunicação de texto para o próprio terminal

Fazer Comunicação Interactiva

A-12-01-M-ok - Fazer comunicação de voz entre dois terminais IDLE do mesmo cliente
A-12-02-M-ok - Fazer comunicação de voz entre dois terminais IDLE de clientes distintos
A-12-03-M-ok - Fazer comunicação de voz a partir de um terminal SILENCE para IDLE
A-12-04-M-ok - Fazer comunicação de voz para um terminal OFF
A-12-05-M-ok - Fazer comunicação de voz para um terminal SILENCE
A-12-06-M-ok - Fazer comunicação de voz para um terminal BUSY a receber comunicação
A-12-07-M-ok - Fazer comunicação de voz para um terminal BUSY a fazer comunicação
A-12-08-M-ok - Fazer comunicação de voz para um terminal não existente
A-11-09-M-ok - Fazer comunicação interactiva e verificar que só pode ser VOICE/VIDEO
A-12-10-M-ok - Fazer comunicação de video entre dois terminais IDLE do mesmo cliente
A-12-11-M-ok - Fazer comunicação de video entre dois terminais IDLE de clientes distintos
A-12-12-M-ok - Fazer comunicação de video a partir de um terminal SILENCE para IDLE
A-12-13-M-ok - Fazer comunicação de video para um terminal SILENCE
A-12-14-M-ok - Fazer comunicação de video para um terminal OFF
A-12-15-M-ok - Fazer comunicação de video para um terminal BUSY a receber comunicação
A-12-16-M-ok - Fazer comunicação de video para um terminal BUSY a fazer comunicação
A-12-17-M-ok - Fazer comunicação de video a partir de um terminal BASIC
A-12-18-M-ok - Fazer comunicação de video para um terminal BASIC
A-12-20-M-ok - Fazer comunicação de video para terminal ocupado em voz e o oposto
A-12-21-M-ok - Fazer chamada voice de FANCY para BASIC e vice-versa
A-12-22-M-ok - Fazer chamada voz/video entre IDLE's e ver que os terminais passam a BUSY
A-12-23-M-ok - Fazer chamada voz/video entre SILENT e IDLE e ver que os terminais passam a BUSY

Ver comunicação em curso

A-13-01-M-ok Ver comunicação voz em curso entre terminais BASIC
A-13-02-M-ok Ver comunicação voz em curso entre entre terminais BASIC  e FANCY
A-13-03-M-ok Ver comunicação video em curso
A-13-04-M-ok Ver comunicação em curso de terminal idle
A-13-05-M-ok Ver comunicação em curso de terminal idle mas há outro com comunicação em curso
A-13-06-M-ok - cli001 Faz um pagamento superior a 500 e fica gold
A-13-07-M-ok - cli001 Faz dois pagamentos com total superior a 500 e fica gold, guarda gold.dat
A-13-08-M-ok - Abre gold.dat e Ver custo de comunicação texto com N < 100 para Gold  com mesmo terminal
A-13-09-M-ok - Abre gold.dat e Ver custo de comunicação texto com N < 100 para Gold  com outro terminal
A-13-10-M-ok - Ver custo de comunicação texto com N > 100 e N = 100 para Gold
A-13-11-M-ok - Ver custo de comunicação voz  para Gold
A-13-12-M-ok - Ver custo de comunicação vídeo para Gold
A-13-13-M-ok - Faz comunicação e cliente gold fica com saldo negativo e passa a Normal
A-13-13B-M-ok - Faz comunicações de terminais distintos do mesmo cliente gold fica com saldo negativo e passa a Normal
A-13-14-M-ok - Faz 5 comunicações video do mesmo terminal de cliente Gold e passa a Platinum, guarda em Platinum.dat
A-13-15-M-ok - Faz 5 comunicações video de terminais distintos a partir do mesmo cliente Gold e passa a Platinum
A-13-16-M-ok - Faz 5 comunicações video não consecutivas do mesmo terminal e continua Gold
A-13-17-M-ok - Faz 5 comunicações video consecutivas do mesmo terminal de cliente Gold mas com outras comunicações de outros terminais e passa a Platinum
A-13-18-M-ok - Faz 5 comunicações video do mesmo terminal a partir do mesmo client Gold , fica com saldo negativo na 5ª e passa a Normal
A-13-19-M-ok - Cliente Gold faz uma comunicação e fica com saldo negativo e passa a Normal
A-13-20-M-ok - Ver custo de comunicação texto com N < 50 para Platinum
A-13-21-M-ok - Ver custo de comunicação texto com N=50 e N > 100 para Platinum
A-13-22-M-ok - Ver custo de comunicação voz  para Platinum
A-13-23-M-ok - Ver custo de comunicação vídeo para Platinum
A-13-24-M-ok - Cliente Platinum faz comunicação e saldo passa a negativo
A-13-25-M-ok - Cliente Platinum tem duas comunicações consecutivas de texto do mesmo terminal
A-13-26-M-ok - Cliente Platinum tem duas comunicações consecutivas de texto de dois terminais distintos
A-13-27-M-ok - Cliente Platinum tem duas comunicações consecutivas de texto do mesmo terminal e saldo fica negativo

Terminar comunicação

A-14-01-M-ok Fazer comunicação voz entre dois IDLE, terminar comunicação e ver comunicação em curso e ver terminais
A-14-02-M-ok Fazer comunicação voz entre dois IDLE, e tentar terminar comunicação do terminal chamado
A-14-03-M-ok Fazer comunicação voz entre dois IDLE, terminar comunicação e ver comunicação em curso e ver terminais
A-14-04-M-ok Fazer comunicação voz entre um SILENCE e um IDLE, terminar comunicação e ver comunicação em curso e ver terminais
A-14-05-M-ok Fazer comunicação video entre um SILENCE e um IDLE, terminar comunicação e ver comunicação em curso e ver terminais

Custo das comunicações

A-15-01-M-ok - Ver custo de comunicação texto com N < 50 para Normal
A-15-02-M-ok - Ver custo de comunicação texto com N = 50 e N > 100 para Normal
A-15-03-M-ok - Ver custo de comunicação texto com N > 100 e N =100 para Normal
A-15-04-M-ok - Ver custo de comunicação voz  para Normal
A-15-05-M-ok - Ver custo de comunicação vídeo para Normal
A-15-06-M-ok - Ver custo de comunicação vídeo/voz para Normal para um terminal amigo
A-15-07-M-ok - Ver custo de comunicação vídeo/voz para Normal de um terminal amigo
A-15-08-M-ok - Ver custo de comunicação texto para Normal para um terminal amigo
A-15-09-M-ok - Ver custo de comunicação texto/voz para Normal de um terminal amigo

Adicionar amigo

A-16-01-M-ok - Adicionar um terminal amigo e ver amigos
A-16-02-M-ok - Adicionar o mesmo terminal amigo duas vezes e ver amigos
A-16-03-M-ok - Adicionar um terminal amigo existente e outro não existente
A-16-04-M-ok - Adicionar vários terminais amigos por ordem
A-16-05-M-ok - Adicionar vários terminais amigos por ordem via import
A-16-06-M-ok - Adicionar vários terminais amigos por desordenados
A-16-07-M-ok - Adicionar um terminal como amigo de si próprio

Remover amigo

A-17-01-M-ok - Remover um terminal amigo de um terminal sem amigos
A-17-02-M-ok - Remover terminal não existente e não amigo de um terminal com amigos
A-17-03-M-ok - Remover um terminal amigo de um terminal com um amigo
A-17-04-M-ok - Remover um terminal amigo de um terminal com vários amigos e ficar sem amigos

Notificações

A-18-01-M-ok - Activar recepção de contactos falhados para cliente com recepção activa
A-18-02-M-ok - Desctivar recepção de contactos falhados para cliente com recepção activa
A-18-03-M-ok - Activar recepção de contactos falhados para cliente com recepção inactiva
A-18-04-M-ok - Desctivar recepção de contactos falhados para cliente com recepção inactiva
A-18-05-M-ok - Fazer comunicação voz para terminal Off, ligar terminal
A-18-06-M-ok - Fazer comunicação voz para terminal Off, colocar terminal em silêncio
A-18-07-M-ok - Fazer comunicação vídeo para terminal Off, ligar terminal
A-18-08-M-ok - Fazer comunicação vídeo para terminal Off, colocar terminal em silêncio
A-18-09-M-ok - Fazer comunicação voz para terminal Off, ligar terminal ver que notificações são removidas
A-18-10-M-ok - Fazer comunicação texto para terminal Off, ligar terminal
A-18-11-M-ok - Fazer comunicação texto para terminal Off, colocar terminal em silêncio
A-18-12-M-ok - Fazer comunicação vídeo e voz de terminais de clientes distintos para terminal Off, ligar terminal
A-18-13-M-ok - Fazer comunicação vídeo e voz do mesmo terminal para terminal Off, ligar terminal
A-18-14-M-ok - Fazer comunicação vídeo e voz de dois terminais do mesmo cliente para terminal Off, ligar terminal
A-18-15-M-ok - Fazer comunicação voz para terminal Off, ligar terminal, ver cliente, desligar terminal, ligar terminal e ver cliente
A-18-16-M-ok - Fazer comunicação voz, vídeo de terminais diferentes para terminal em silêncio e ligar terminal
A-18-17-M-ok - Fazer comunicação voz, vídeo de terminais diferentes para terminal BASIC em silêncio e ligar terminal e ver que só é enviada uma notificação
A-18-18-M-ok - Fazer comunicação texto para terminal em silêncio e ligar terminal
A-18-19-M-ok - Fazer comunicação voz, vídeo para terminal em silêncio, desligar e ligar terminal
A-18-20-M-ok - Fazer comunicação voz, vídeo e texto para terminal busy-silent e termina comunicação
A-18-21-M-ok - Fazer comunicação voz, vídeo e texto para terminal busy-idle e termina comunicação
A-18-22-M-ok - Fazer comunicação voz e vídeo para terminal busy-silence e termina comunicação e passa a idle
A-18-23-M-ok - Fazer comunicação vídeo e voz de terminais de clientes distintos,  mas um com notificações inactivas, para terminal Off, ligar terminal
A-18-24-M-ok - Fazer comunicação vídeo e voz de terminais de clientes distintos,  mas um com notificações inactivas, para terminal Silence, ligar terminal

Operações sobre Terminais

A-19-01-M-ok - Ligar terminal desligado
A-19-02-M-ok - Ligar terminal em silêncio
A-19-03-M-ok - Ligar terminal ligado
A-19-04-M-ok - Colocar em silêncio terminal desligado e terminal ligado
A-19-05-M-ok - Colocar em silêncio terminal em silêncio
A-19-06-M-ok - Desligar terminal em silêncio e terminal ligado
A-19-07-M-ok - Desligar terminal desligado
Pagar comunicações e Consulta de saldo de um terminal

A-20-01-M-ok - Consultar saldo dos 2 terminais após fazer uma comunicação de texto
A-20-02-M-ok - Consultar saldo do terminal com uma comunicação em curso
A-20-03-M-ok - Consultar saldo dos 2 terminais após fazer uma comunicação de voz e vídeo
A-20-04-M-ok - Pagar uma comunicação de texto feita por Normal e continua Normal
A-20-05-M-ok - Pagar uma comunicação de video/voz feita por Normal e continua Normal
A-20-06-M-ok - Pagar uma comunicação de voz/video entre dois terminais do mesmo cliente e continua Normal
A-20-07-M-ok - Pagar uma comunicação não existente
A-20-08-M-ok - Pagar uma comunicação já paga
A-20-09-M-ok - Pagar uma comunicação em curso
A-20-10-M-ok - Pagar uma comunicação existente mas pertence a outro terminal do cliente ou a outro cliente

Mostrar comunicações feitas por um cliente

A-21-01-M-ok - Fazer uma comunicação texto de um cliente com um terminal ver as comunicações
A-21-02-M-ok - Fazer uma comunicação voz/vídeo de um cliente com um terminal ver as comunicações
A-21-03-M-ok - Fazer uma comunicação de um cliente com um terminal ver as comunicações e ver as comunicações de um cliente sem terminais
A-21-04-M-ok - Fazer uma comunicação de um cliente com um terminal ver as comunicações  desse terminal e do outro
A-21-05-M-ok - Fazer uma comunicação de e para um cliente e ver as comunicações
A-21-06-M-ok - Fazer várias comunicações por ordem de terminais do mesmo cliente e ver comunicações
A-21-07-M-ok - Fazer várias comunicações desordenadas por ordem de terminais do mesmo cliente e ver comunicações


Mostrar comunicações recebidas por um cliente

A-22-01-M-ok - Fazer uma comunicação sms para um cliente com um terminal ver as comunicações
A-22-02-M-ok - Fazer uma comunicação voz/vídeo para um cliente com um terminal ver as comunicações
A-22-03-M-ok - Fazer uma comunicação para um cliente com um terminal ver as comunicações e ver as comunicações para um cliente sem terminais
A-22-04-M-ok - Fazer uma comunicação para um cliente com um terminal ver as comunicações  desse terminal e do outro
A-22-05-M-ok - Fazer uma comunicação de e para um cliente e ver as comunicações
A-22-06-M-ok - Fazer várias comunicações por ordem de terminais do mesmo cliente e ver comunicações
A-22-07-M-ok - Fazer várias comunicações desordenadas por ordem de terminais do mesmo cliente e ver comunicações
A-22-08-M-ok - Fazer uma comunicação para um terminal BUSY e OFF e ver comunicações
Mostrar clientes com dívidas

A-23-01-M-ok - Um cliente com um terminal e uma comunicação por pagar
A-23-02-M-ok - Um cliente com uma comunicação por pagar  mas saldo positivo
A-23-03-M-ok - Um cliente sem terminais
A-23-04-M-ok - Um cliente com comunicações todas pagas
A-23-05-M-ok - Um cliente com dois terminais e comunicações não pagas nos dois
A-23-06-M-ok - Um cliente com comunicações por pagar de um terminal e comunicações pagas de outro terminal
A-23-07-M-ok - Vários clientes ordenados por dívida
A-23-08-M-ok - Vários clientes com o mesmo valor de dívida ordenados por dívida e id

Mostrar clientes sem dívidas

A-24-01-M-ok - Um cliente com um terminal e uma comunicação por pagar, ver,
A-24-02-M-ok - Um cliente com um terminal e uma comunicação por pagar, ver, pagar e ver
A-24-03-M-ok - Um cliente com uma comunicação por pagar  mas saldo positivo
A-24-04-M-ok - Um cliente sem terminais
A-24-05-M-ok - Um cliente com comunicações todas pagas
A-24-06-M-ok - Um cliente com dois terminais e comunicações não pagas nos dois
A-24-07-M-ok - Um cliente que recebeu chamadas não pagas

Mostrar terminais sem actividade

A-25-01-M-ok - Cliente com um terminal e sem actividade e restantes com actividade
A-25-02-M-ok - Cliente com dois terminais e sem actividade num deles
A-25-03-M-ok - Terminal que só recebe chamadas  voz e todas pagas
A-25-04-M-ok - Terminal que só faz chamadas video
A-25-05-M-ok - Vários clientes com terminais e todos com actividade

Mostrar terminais com saldo positivo

A-26-01-M-ok - realiza operação para o caso em que todos os terminais não têm actividade
A-26-02-M-ok - realiza operação para o caso em que há um terminal com todas as comunicações pagas
A-26-03-M-ok - realiza operação para o caso em que há um terminal com comunicações pagas mas inferiores às dívidas
A-26-04-M-ok - realiza operação para o caso em que há um terminal com comunicações pagas e superiores à dívida