Skip to content

Instantly share code, notes, and snippets.

@dherges
dherges / MyTwitterApplicationContainer.java
Created September 25, 2016 12:45
ok-testing-reloaded-medium
public interface MyTwitterApplicationContainer extends SparkApplicationContainer {
TweetsDb tweetsDb();
}
@dherges
dherges / SparkRunner.java
Created September 25, 2016 12:49
ok-testing-reloaded-medium
public class SparkRunner extends BlockJUnit4ClassRunner {
private Class<? extends SparkApplicationContainer> applicationContainer;
/* ... */
private void scanAnnotation() {
SparkApplicationTest annotation = getTestClass().getAnnotation(SparkApplicationTest.class);
applicationContainer = annotation.value();
/* ... */
@dherges
dherges / FakeTweetsDb.java
Created September 25, 2016 12:52
ok-testing-reloaded-medium
public class FakeTweetsDb extends TweetsDb {
public List<Tweet> fetchTweets(long id, int count) {
return IntStream.range(0, 100)
.mapToObj((i) -> {
final Tweet tweet = new Tweet();
tweet.id = id + i;
tweet.text = String.format("Mocked retweet of %s", id);
tweet.favorited = false;
tweet.user = new User();
@dherges
dherges / build.gradle
Created October 16, 2016 19:12
spring-cucumber
repositories {
mavenCentral()
maven {
url "http://repo.spring.io/release"
}
}
buildscript {
repositories {
mavenCentral()
@dherges
dherges / HelloController.java
Created October 16, 2016 19:24
spring-cucumber
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
public String welcomeMessage = "Hello again!";
@RequestMapping("hello")
@dherges
dherges / hello.feature
Created October 16, 2016 19:32
spring-cucumber
Feature: Hello Testing
Scenario: Hello World API talks to us
When client calls GET /hello
Then response code is 200
And response body is
"""
Hello again!
"""
@dherges
dherges / TwitterAppTest.java
Last active October 16, 2016 20:35
spring-cucumber
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features = "src/test/resources/features",
monochrome = true,
plugin = {"pretty", "html:build/reports/cucumber"}
@dherges
dherges / ClientSteps.java
Created October 16, 2016 20:36
spring-cucumber
import org.springframework.boot.context.embedded.LocalServerPort;
import java.io.IOException;
import cucumber.api.java8.En;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import static org.assertj.core.api.Assertions.assertThat;
@dherges
dherges / AppSteps.java
Created October 16, 2016 20:36
spring-cucumber
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
import cucumber.api.java8.En;
import spring.cucumber.demo.TwitterApp;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ContextConfiguration(classes = TwitterApp.class)
public class AppSteps implements En {
}
@dherges
dherges / template-driven-form.component.ts
Last active October 29, 2016 10:27
Angular2: reactive v. template-driven form
import { Component } from '@angular/core'
@Component({
selector: 'template-driven-form',
template:
`
<form #myForm="ngForm" (ngSubmit)="submit(myForm.form)">
<div class="form-group">
<label for="td_name" >Name</label>
<input type="text" class="form-control" id="td_name"