Skip to content

Instantly share code, notes, and snippets.

View igorstojanovski's full-sized avatar
💭
I have promises to keep and miles to go before I sleep

Igor Stojanovski igorstojanovski

💭
I have promises to keep and miles to go before I sleep
View GitHub Profile
@TestFactory
public Stream<DynamicTest> testFactory() {
InputStream inputFS = getClass().getClassLoader().getResourceAsStream("testData.csv");
BufferedReader br = new BufferedReader(new InputStreamReader(inputFS));
return br.lines().skip(1).map(mapCsvLineToDynamicTest());
}
private Function<String, DynamicTest> mapCsvLineToDynamicTest() {
return s -> {
@igorstojanovski
igorstojanovski / RuleOne.java
Created September 17, 2018 09:58
Order of running rules in a rule chain in JUnit 4
public class RuleOne implements TestRule {
@Override
public Statement apply(Statement statement, Description description) {
System.out.println("========== ONE ============");
return new Statement() {
@Override
public void evaluate() throws Throwable {
System.out.println("Evaluation ONE!");
statement.evaluate();
}
@igorstojanovski
igorstojanovski / MainPanelHasComponents.java
Created October 12, 2018 20:51
VaadinHasComponentsInterface
@Tag("main-panel-three")
@HtmlImport("src/main-panel-three.html")
@StyleSheet("styles.css")
@Route("three")
@Viewport("width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes")
@Theme(value = Lumo.class, variant = Lumo.DARK)
public class MainPanelHasComponents extends PolymerTemplate<MainPanelModel> implements RouterLayout, HasComponents {
@Id("menu-three")
@igorstojanovski
igorstojanovski / vaadin-login-view.html
Created October 25, 2018 21:31
Vaadin login layout example
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/iron-form/iron-form.html">
<link rel="import" href="../../bower_components/vaadin-text-field/src/vaadin-text-field.html">
<link rel="import" href="../../bower_components/vaadin-text-field/src/vaadin-password-field.html">
<link rel="import" href="../../bower_components/vaadin-button/src/vaadin-button.html">
<dom-module id="login-view">
<template>
<style>
@igorstojanovski
igorstojanovski / mavendump
Created November 5, 2018 22:19
Corrupted STDOUT by directly writing to native stream in forked JVM 1.
# Created at 2018-11-05T23:08:36.234
Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream '23:08:36.212 [main] INFO org.igorski.listeners.BasicListener - Creating BasicListener instance.'.
java.lang.IllegalArgumentException: Stream stdin corrupted. Expected comma after third character in command '23:08:36.212 [main] INFO org.igorski.listeners.BasicListener - Creating BasicListener instance.'.
at org.apache.maven.plugin.surefire.booterclient.output.ForkClient$OperationalData.<init>(ForkClient.java:507)
at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.processLine(ForkClient.java:210)
at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.consumeLine(ForkClient.java:177)
at org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:88)
at java.base/java.lang.Thread.run(Thread.java:844)
@igorstojanovski
igorstojanovski / TestPlanCreator.java
Last active November 6, 2018 21:36
How to create a JUnit 5 TestPlan
package co.igorski.examples;
import org.junit.platform.launcher.Launcher;
import org.junit.platform.launcher.LauncherDiscoveryRequest;
import org.junit.platform.launcher.TestPlan;
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder;
import org.junit.platform.launcher.core.LauncherFactory;
import stubs.classes.DummyTest;
import static org.junit.platform.engine.discovery.ClassNameFilter.includeClassNamePatterns;
@igorstojanovski
igorstojanovski / KeycloakClientTest.java
Created July 28, 2019 19:44
Using the Keycloak client to create a user, set a real role and then delete it.
package io.aktivator;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
import org.keycloak.admin.client.Keycloak;
import org.keycloak.admin.client.KeycloakBuilder;
import org.keycloak.admin.client.resource.RealmResource;
import org.keycloak.admin.client.resource.RolesResource;
import org.keycloak.admin.client.resource.UsersResource;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.representations.idm.ClientRepresentation;
String fileDownloadUri = ServletUriComponentsBuilder.fromCurrentContextPath()
.path("/downloadFile/")
.path(productImage.getPath())
.toUriString();
@igorstojanovski
igorstojanovski / PersonTest.java
Created October 14, 2023 22:03
Sample Junit 5 test with a Mockito Extension
@ExtendWith(MockitoExtension.class)
class PersonTest {
@Mock
PinProvider pinProvider;
@Test
public void shouldCreatePersonWithCorrectPin() {
String samplePin = "samplePin";
when(pinProvider.getPin()).thenReturn(samplePin);
@igorstojanovski
igorstojanovski / OrderedTests.java
Created June 4, 2024 09:28
Ordered Test Execution in Junit5
package org.igorski.tests;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestMethodOrder;