Created
March 10, 2026 15:19
-
-
Save musketyr/26649d2abddb246d335a9f2d94204150 to your computer and use it in GitHub Desktop.
[sc188309] Spock to JUnit 5 Migration Diff - AnalyticsAccountUtilsSpec
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>Spock → JUnit 5 Migration Diff: AnalyticsAccountUtilsSpec → AnalyticsAccountUtilsTest</title> | |
| <style> | |
| body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; max-width: 1400px; margin: 0 auto; padding: 20px; background: #f5f5f5; } | |
| h1 { color: #333; border-bottom: 2px solid #0366d6; padding-bottom: 10px; } | |
| h2 { color: #24292e; background: #fff; padding: 15px; margin: 30px 0 0 0; border-radius: 6px 6px 0 0; border: 1px solid #e1e4e8; border-bottom: none; } | |
| .diff-container { display: flex; gap: 0; margin-bottom: 30px; } | |
| .diff-side { flex: 1; overflow-x: auto; } | |
| .diff-side h3 { margin: 0; padding: 10px 15px; font-size: 14px; } | |
| .spock h3 { background: #ffeef0; color: #cb2431; border: 1px solid #e1e4e8; border-bottom: none; } | |
| .junit h3 { background: #e6ffed; color: #22863a; border: 1px solid #e1e4e8; border-bottom: none; border-left: none; } | |
| pre { margin: 0; padding: 15px; font-size: 13px; line-height: 1.5; overflow-x: auto; border: 1px solid #e1e4e8; } | |
| .spock pre { background: #fff5f5; border-radius: 0 0 0 6px; } | |
| .junit pre { background: #f0fff4; border-radius: 0 0 6px 0; border-left: none; } | |
| code { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; } | |
| .summary { background: #fff; padding: 20px; border-radius: 6px; margin-bottom: 30px; border: 1px solid #e1e4e8; } | |
| .summary ul { margin: 10px 0; padding-left: 25px; } | |
| .story-link { color: #0366d6; text-decoration: none; } | |
| .story-link:hover { text-decoration: underline; } | |
| </style> | |
| </head> | |
| <body> | |
| <h1>🔄 Spock → JUnit 5 Migration</h1> | |
| <div class="summary"> | |
| <strong>Story:</strong> <a class="story-link" href="https://app.shortcut.com/agorapulse/story/188309">[sc188309] [Commons] Migrate AnalyticsAccountUtilsSpec to JUnit 5</a><br> | |
| <strong>Epic:</strong> <a class="story-link" href="https://app.shortcut.com/agorapulse/epic/188306">188306 - Get rid of spock (analytics/commons)</a><br> | |
| <strong>File:</strong> <code>analytics/commons/backend/libs/lib-commons-utils/src/test/.../AnalyticsAccountUtilsSpec.groovy</code> → <code>AnalyticsAccountUtilsTest.java</code> | |
| <h3>Migration Summary</h3> | |
| <ul> | |
| <li>Converted 6 Spock test methods to JUnit 5 @Test methods</li> | |
| <li>No mocks needed - simple utility method tests</li> | |
| <li>Used fluent builder pattern for AccountSummary construction (Java style)</li> | |
| <li>Added // given/when/then comments to maintain BDD structure</li> | |
| <li>Renamed methods to camelCase: shouldDoSomething() pattern</li> | |
| </ul> | |
| </div> | |
| <h2>Test 1: shouldReturnNullWhenAccountIsNull</h2> | |
| <div class="diff-container"> | |
| <div class="diff-side spock"> | |
| <h3>❌ Spock (removed)</h3> | |
| <pre><code>void "get account display name - no account"() { | |
| when: | |
| String name = AnalyticsAccountUtils.getDisplayName(null) | |
| then: | |
| name == null | |
| }</code></pre> | |
| </div> | |
| <div class="diff-side junit"> | |
| <h3>✅ JUnit 5 (added)</h3> | |
| <pre><code>@Test | |
| void shouldReturnNullWhenAccountIsNull() { | |
| // when | |
| String name = AnalyticsAccountUtils.getDisplayName(null); | |
| // then | |
| assertNull(name); | |
| }</code></pre> | |
| </div> | |
| </div> | |
| <h2>Test 2: shouldReturnAliasWhenAliasIsPresent</h2> | |
| <div class="diff-container"> | |
| <div class="diff-side spock"> | |
| <h3>❌ Spock (removed)</h3> | |
| <pre><code>void "get account display name - alias"() { | |
| given: | |
| AccountSummary account = new AccountSummary( | |
| alias: 'a', | |
| screenName: 's', | |
| name: 'n', | |
| username: 'u' | |
| ) | |
| when: | |
| String name = AnalyticsAccountUtils.getDisplayName(account) | |
| then: | |
| name == 'a' | |
| }</code></pre> | |
| </div> | |
| <div class="diff-side junit"> | |
| <h3>✅ JUnit 5 (added)</h3> | |
| <pre><code>@Test | |
| void shouldReturnAliasWhenAliasIsPresent() { | |
| // given | |
| AccountSummary account = new AccountSummary() | |
| .alias("a") | |
| .screenName("s") | |
| .name("n") | |
| .username("u"); | |
| // when | |
| String name = AnalyticsAccountUtils.getDisplayName(account); | |
| // then | |
| assertEquals("a", name); | |
| }</code></pre> | |
| </div> | |
| </div> | |
| <h2>Test 3: shouldReturnScreenNameWhenAliasIsEmpty</h2> | |
| <div class="diff-container"> | |
| <div class="diff-side spock"> | |
| <h3>❌ Spock (removed)</h3> | |
| <pre><code>void "get account name - screenName"() { | |
| given: | |
| AccountSummary account = new AccountSummary( | |
| alias: '', | |
| screenName: 's', | |
| name: 'n', | |
| username: 'u' | |
| ) | |
| when: | |
| String name = AnalyticsAccountUtils.getDisplayName(account) | |
| then: | |
| name == 's' | |
| }</code></pre> | |
| </div> | |
| <div class="diff-side junit"> | |
| <h3>✅ JUnit 5 (added)</h3> | |
| <pre><code>@Test | |
| void shouldReturnScreenNameWhenAliasIsEmpty() { | |
| // given | |
| AccountSummary account = new AccountSummary() | |
| .alias("") | |
| .screenName("s") | |
| .name("n") | |
| .username("u"); | |
| // when | |
| String name = AnalyticsAccountUtils.getDisplayName(account); | |
| // then | |
| assertEquals("s", name); | |
| }</code></pre> | |
| </div> | |
| </div> | |
| <h2>Test 4: shouldReturnNameWhenAliasIsNullAndScreenNameIsEmpty</h2> | |
| <div class="diff-container"> | |
| <div class="diff-side spock"> | |
| <h3>❌ Spock (removed)</h3> | |
| <pre><code>void "get account name - name"() { | |
| given: | |
| AccountSummary account = new AccountSummary( | |
| alias: null, | |
| screenName: '', | |
| name: 'n', | |
| username: 'u' | |
| ) | |
| when: | |
| String name = AnalyticsAccountUtils.getDisplayName(account) | |
| then: | |
| name == 'n' | |
| }</code></pre> | |
| </div> | |
| <div class="diff-side junit"> | |
| <h3>✅ JUnit 5 (added)</h3> | |
| <pre><code>@Test | |
| void shouldReturnNameWhenAliasIsNullAndScreenNameIsEmpty() { | |
| // given | |
| AccountSummary account = new AccountSummary() | |
| .alias(null) | |
| .screenName("") | |
| .name("n") | |
| .username("u"); | |
| // when | |
| String name = AnalyticsAccountUtils.getDisplayName(account); | |
| // then | |
| assertEquals("n", name); | |
| }</code></pre> | |
| </div> | |
| </div> | |
| <h2>Test 5: shouldReturnEmptyStringWhenNameIsEmpty</h2> | |
| <div class="diff-container"> | |
| <div class="diff-side spock"> | |
| <h3>❌ Spock (removed)</h3> | |
| <pre><code>void "get account name - empty"() { | |
| given: | |
| AccountSummary account = new AccountSummary( | |
| alias: null, | |
| screenName: null, | |
| name: '', | |
| username: 'u' | |
| ) | |
| when: | |
| String name = AnalyticsAccountUtils.getDisplayName(account) | |
| then: | |
| name == '' | |
| }</code></pre> | |
| </div> | |
| <div class="diff-side junit"> | |
| <h3>✅ JUnit 5 (added)</h3> | |
| <pre><code>@Test | |
| void shouldReturnEmptyStringWhenNameIsEmpty() { | |
| // given | |
| AccountSummary account = new AccountSummary() | |
| .alias(null) | |
| .screenName(null) | |
| .name("") | |
| .username("u"); | |
| // when | |
| String name = AnalyticsAccountUtils.getDisplayName(account); | |
| // then | |
| assertEquals("", name); | |
| }</code></pre> | |
| </div> | |
| </div> | |
| <h2>Test 6: shouldReturnEmptyStringWhenNameIsNull</h2> | |
| <div class="diff-container"> | |
| <div class="diff-side spock"> | |
| <h3>❌ Spock (removed)</h3> | |
| <pre><code>void "get account name - empty 2"() { | |
| given: | |
| AccountSummary account = new AccountSummary( | |
| alias: null, | |
| screenName: null, | |
| name: null, | |
| username: 'u' | |
| ) | |
| when: | |
| String name = AnalyticsAccountUtils.getDisplayName(account) | |
| then: | |
| name == '' | |
| }</code></pre> | |
| </div> | |
| <div class="diff-side junit"> | |
| <h3>✅ JUnit 5 (added)</h3> | |
| <pre><code>@Test | |
| void shouldReturnEmptyStringWhenNameIsNull() { | |
| // given | |
| AccountSummary account = new AccountSummary() | |
| .alias(null) | |
| .screenName(null) | |
| .name(null) | |
| .username("u"); | |
| // when | |
| String name = AnalyticsAccountUtils.getDisplayName(account); | |
| // then | |
| assertEquals("", name); | |
| }</code></pre> | |
| </div> | |
| </div> | |
| </body> | |
| </html> | |
| </code></pre> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment