{"id":19653215,"url":"https://github.com/didifive/desafio-tdd-java","last_synced_at":"2026-04-29T19:31:21.497Z","repository":{"id":153798456,"uuid":"557627656","full_name":"didifive/desafio-tdd-java","owner":"didifive","description":"Desafio TDD (semana 30/05 ~ 03/06/2022) - Programa GFT Start","archived":false,"fork":false,"pushed_at":"2022-10-26T02:44:48.000Z","size":82,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-28T02:42:12.400Z","etag":null,"topics":["eclipse-ide","java","junit4","maven","tdd"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/didifive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-26T02:21:36.000Z","updated_at":"2023-09-09T23:25:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"92d61230-cb1c-48b5-a72c-dbc2d8dd2e01","html_url":"https://github.com/didifive/desafio-tdd-java","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/didifive/desafio-tdd-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didifive%2Fdesafio-tdd-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didifive%2Fdesafio-tdd-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didifive%2Fdesafio-tdd-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didifive%2Fdesafio-tdd-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/didifive","download_url":"https://codeload.github.com/didifive/desafio-tdd-java/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didifive%2Fdesafio-tdd-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32440831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T18:12:22.909Z","status":"ssl_error","status_checked_at":"2026-04-29T18:11:33.322Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eclipse-ide","java","junit4","maven","tdd"],"created_at":"2024-11-11T15:13:34.412Z","updated_at":"2026-04-29T19:31:21.473Z","avatar_url":"https://github.com/didifive.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DESAFIO TDD - Programa Start\n\n## Description\nRepositório para entrega do Desafio TDD (semana 30/05 ~ 03/06/2022) - Programa GFT Start  \nNeste desafio foram utilizados os exercícios 1, 2, 3 e 7 do Desafio de POO para aplicar testes à eles.  \nAdicionalmente (Exceeds):\n- Foi criado uma única main (DesafioTDDApp) que possui opções para chamar os outros métodos;\n- Foram feitos os desafios: [Desafio Jokenpo] e [Desafio Dependências Transitivas] disponíveis no site [DojoPuzzles.com],\na descrição dos desafios estão na seção abaixo \"Extra Challenges\".\n\n## Extra Challenges\n\n### Jokenpo\nJokenpo é uma brincadeira japonesa, onde dois jogadores escolhem um dentre três possíveis itens: Pedra, Papel ou Tesoura.  \nO objetivo é fazer um juiz de Jokenpo que dada a jogada dos dois jogadores informa o resultado da partida.  \nAs regras são as seguintes:  \n- Pedra empata com Pedra e ganha de Tesoura\n- Tesoura empata com Tesoura e ganha de Papel\n- Papel empata com Papel e ganha de Pedra  \n\nLink [Desafio Jokenpo].\n\n### Dependências Transitivas\nVamos escrever algum código para calcular como as dependências se propagam entre coisas como classes em um programa.  \nCódigo altamente acoplado é o código onde as dependências entre suas partes são densas, muitas coisas dependem de muitas outras. Este tipo de código é difícil de entender e manter, e tende a ser frágil, falhando facilmente quando fazemos alguma mudança.  \nExistem muitos tipos diferentes de acoplamento. O mais simples de trabalhar programaticamente é o 'acoplamento estático'. De forma simples podemos dizer que a classe A é estaticamente acoplada a classe B se o compilador precisa da definição de B para compilar A.  \nAs dependências podem ser transitivas - se A depende de B e B depende de C, então A depende de B e C. Então vamos escrever um código que calcula o conjunto completo de dependências para um grupo de classes. O código recebe como entrada um conjunto de linhas, onde em cada linha, o primeiro token é o nome da classe. Os token seguintes são os nomes das classes que a primeira classe depende.  \nDada a seguinte entrada, sabemos que A depende diretamente de B e C, e C depende de G, portanto A também depende de G:  \nA B C  \nB C E  \nC G  \nD A F  \nE F  \nF H  \nO conjunto de dependências completo para cada classe, para o conjunto anterior seria:  \nA \u0026nbsp;\u0026nbsp;B C E F G H  \nB \u0026nbsp;\u0026nbsp;C E F G H  \nC \u0026nbsp;\u0026nbsp;G  \nD \u0026nbsp;\u0026nbsp;A B C E F G H  \nE \u0026nbsp;\u0026nbsp;F H  \nF \u0026nbsp;\u0026nbsp;H  \nLink [Desafio Dependências Transitivas].\n\n## Installation\nO projeto foi feito utilizando:\n- [IDE Eclipse] versão 2022-03 (4.23.0)\n- [Maven] \n- [Java 11]\n- [JUnit 4.11]  \n\nPara a abrir o projeto basta clonar o repositório ou realizar o download e após:\n- Importar o projeto, preferencialmente na IDE Eclipse;\n- Fazer atualizações das dependências do Maven (Alt+F5 no Eclipse).\n\n## Tests\nOs testes foram feitos utilizando o JUnit 4.11 e Mockito 4.6.0 que estão como dependências do projeto, basta atualizar as dependências do Maven para poder rodar os testes.\n\n## Usage\nPara abrir o sistema que contém TODAS as opções das atividades, basta executar (Run) a classe abaixo:\n- Classe Principal (Main) `DesafioTDDApp` no pacote `com.gft.desafio.main`.\n\nAdicionalmente pode-se abrir as atividades individualmente executando (Run) cada classe principal conforme lista abaixo:\n\n| Classe                    | Pacote                              |\n|---------------------------|-------------------------------------|\n| `Exercicio1`              | `com.gft.desafio.exercicio1`        |\n| `Exercício2`              | `com.gft.desafio.exercicio2`        |\n| `Exercício3`              | `com.gft.desafio.exercicio3`        |\n| `Exercício7`              | `com.gft.desafio.exercicio7`        |\n| `Jokenpo `                | `com.gft.desafio.extrajokenpo`      |\n| `DependenciasTransitivas` | `com.gft.desafio.extradependencias` |\n\n## Support\nDúvidas ou problemas abrir Issue\n\n## Authors and acknowledgment\nDesafio proposto por Michel, Ubiratran, Clécio e equipe do Programa Start da GFT.  \nDesafios extras [Desafio Jokenpo] e [Desafio Dependências Transitivas] por [DojoPuzzles.com].\n\n## Project status\nDone in jun/02/2022.\n\n\n[Desafio Jokenpo]: https://dojopuzzles.com/problems/jokenpo/\n[Desafio Dependências Transitivas]: https://dojopuzzles.com/problems/dependencias-transitivas/\n[DojoPuzzles.com]: https://dojopuzzles.com/\n[Java 11]: https://docs.oracle.com/en/java/javase/11/docs/api/index.html\n[JUnit 4.11]: https://junit.org/junit4/\n[IDE Eclipse]: https://www.eclipse.org/ide/\n[Maven]: https://maven.apache.org/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdidifive%2Fdesafio-tdd-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdidifive%2Fdesafio-tdd-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdidifive%2Fdesafio-tdd-java/lists"}