{"id":16112851,"url":"https://github.com/jonathanmdr/method-chain-with-dsl-tests","last_synced_at":"2025-08-30T16:37:32.858Z","repository":{"id":99788250,"uuid":"472984636","full_name":"jonathanmdr/method-chain-with-dsl-tests","owner":"jonathanmdr","description":"Projeto utilizado na apresentação da palestra \"Testes Além Do Código\" na trilha Testes no TDC Connections 2022.","archived":false,"fork":false,"pushed_at":"2024-07-02T19:23:17.000Z","size":20,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-06T07:27:01.681Z","etag":null,"topics":["dsl","java","maven","method-chaining","tdc","test"],"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/jonathanmdr.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-03-23T00:36:06.000Z","updated_at":"2024-07-01T13:41:39.000Z","dependencies_parsed_at":"2024-10-31T23:24:11.175Z","dependency_job_id":"8df0e7c3-63a0-4ec0-a0ef-98ba344432eb","html_url":"https://github.com/jonathanmdr/method-chain-with-dsl-tests","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"73139b7aa54a17216b62857c6ea8a0216fbf9aac"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonathanmdr/method-chain-with-dsl-tests","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2Fmethod-chain-with-dsl-tests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2Fmethod-chain-with-dsl-tests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2Fmethod-chain-with-dsl-tests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2Fmethod-chain-with-dsl-tests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonathanmdr","download_url":"https://codeload.github.com/jonathanmdr/method-chain-with-dsl-tests/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2Fmethod-chain-with-dsl-tests/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272878209,"owners_count":25008340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["dsl","java","maven","method-chaining","tdc","test"],"created_at":"2024-10-09T20:09:26.826Z","updated_at":"2025-08-30T16:37:32.840Z","avatar_url":"https://github.com/jonathanmdr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Testes Além do Código\nProjeto utilizado na apresentação da palestra \"Testes Além Do Código\" na trilha Testes no TDC Connections 2022.\n\n[![CI](https://github.com/jonathanmdr/method-chain-with-dsl-tests/actions/workflows/ci.yml/badge.svg)](https://github.com/jonathanmdr/method-chain-with-dsl-tests/actions/workflows/ci.yml)\n[![CodeFactor](https://www.codefactor.io/repository/github/jonathanmdr/method-chain-with-dsl-tests/badge)](https://www.codefactor.io/repository/github/jonathanmdr/method-chain-with-dsl-tests)\n\n## Sobre o Projeto\nO projeto consiste em uma pequena calculadora contendo as quatro operações básicas: `soma`, `subtração`, `multiplicação` e `divisão`.\n\n### Exemplo de teste tradicionalmente escrito:\n```java\n@Test\nvoid shouldBeApplySum() {\n    OperationData operationData = OperationData.builder()\n        .firstNumber(10)\n        .secondNumber(10)\n        .build();\n\n    BigDecimal actual = SUM.execute(operationData);\n\n    Assertions.assertThat(actual)\n        .usingComparator(BigDecimal::compareTo)\n        .isEqualTo(BigDecimal.valueOf(20));\n}\n```\n\n### Exemplo de teste utilizando DSL + Method Chaining:\n```java\n@Test\nvoid shouldBeApplySumWithDsl() {\n    given()\n        .firstNumberEqualTo(10)\n        .secondNumberEqualTo(10)\n    .when(SUM::execute)\n    .then()\n        .assertResult()\n            .isEqualTo(20);\n}\n```\n\n### Exemplo com cenário de falha utilizando DSL + Method Chaining:\n```java\n@Test\nvoid shouldBeThrownBusinessExceptionWhenApplyingDivisionByZero() {\n    given()\n        .firstNumberEqualTo(10)\n        .secondNumberEqualTo(0)\n    .when(DIVISION::execute)\n    .then()\n        .assertException()\n            .isInstanceOf(BusinessException.class)\n            .messageIsEqualTo(\"An unexpected error occurred\");\n}\n```\n\n## Outros projetos com exemplos:\n[Projeto: Java + Spring + JUnit + Mockito](https://github.com/jonathanmdr/DynamicDataSourceRouting)\n\u003cbr\u003e\n[Projeto: Java + JUnit + Mockito + Generics](https://github.com/jonathanmdr/Shopping-Cart-TDD)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanmdr%2Fmethod-chain-with-dsl-tests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanmdr%2Fmethod-chain-with-dsl-tests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanmdr%2Fmethod-chain-with-dsl-tests/lists"}