Skip to content

Instantly share code, notes, and snippets.

View ralphpina's full-sized avatar

Ralph Pina ralphpina

  • Affirm
  • San Francisco, CA
View GitHub Profile
@ralphpina
ralphpina / config.yml
Last active March 3, 2018 19:58
CircleCi 2 config file for Welnys
# Copied from their sample project
# https://github.com/CircleCI-Public/circleci-demo-go/blob/master/.circleci/config.yml
version: 2
jobs:
build:
docker:
# CircleCI Go images available at: https://hub.docker.com/r/circleci/golang/
- image: circleci/golang:1.8
# CircleCI MySQL images available at: https://hub.docker.com/r/circleci/mysql/
- image: circleci/mysql:5.7
@ralphpina
ralphpina / circle.yml
Created March 3, 2018 18:38
CircleCI 1 config file for Welnys
machine:
environment:
PROJECT_GOPATH: "${HOME}/.go_project"
PROJECT_PARENT_PATH: "${PROJECT_GOPATH}/src/github.com/welnys"
PROJECT_PATH: "${PROJECT_PARENT_PATH}/${CIRCLE_PROJECT_REPONAME}"
GOPATH: "${HOME}/.go_workspace:/usr/local/go_workspace:${PROJECT_GOPATH}"
dependencies:
pre:
- go get -u github.com/kardianos/govendor
@Rule
public final TestComponentRule component = new TestComponentRule.Builder()
.withUserManager(true)
.build();
@Rule
public final TestComponentRule component = new TestComponentRule.Builder()
.withClient()
.withUserManager(false)
.build();
@ralphpina
ralphpina / DependencyBuilder.java
Created February 16, 2017 20:11
injecting dependencies.
public Builder withClient() {
this.testClient = new TestGiphyClient();
return this;
}
public Builder withUserManager(boolean real) {
if (real) {
this.userManager = new UserManagerImpl();
} else {
this.userManager = new TestUserManager();
}
@ralphpina
ralphpina / App.java
Created February 16, 2017 20:06
injecting application component into the Application subclass
// Needed to replace the component with a test specific one
@VisibleForTesting
public void setComponent(ApplicationComponent applicationComponent) {
this.applicationComponent = applicationComponent;
// we need to inject again, otherwise the objects here are the originals
// not the test ones as one would expect R.Pina 20160105
this.applicationComponent.inject(this);
}
@ralphpina
ralphpina / ActivityTestRule.java
Created February 16, 2017 20:04
instrumentation test rule example
public final TestComponentRule component = new TestComponentRule.Builder()
.withClient()
.withUserManager(true)
.build();
public final ActivityTestRule<MainActivity> activity = new ActivityTestRule<>(
MainActivity.class,
false,
false);
@ralphpina
ralphpina / BaseTest.java
Last active February 16, 2017 19:59
base test class
public class BaseTest {
public List<Giphy> getGiphies(int count) {
List<Giphy> list = new ArrayList<>();
for (int i = count; i > 0; i--) {
list.add(new Giphy.Builder().url("some_url_" + i).build());
}
return list;
}
}
public class TestComponentRule implements TestRule {
private ApplicationTestModule module;
private TestComponent testComponent;
private TestComponentRule(ApplicationTestModule applicationTestModule) {
this.module = applicationTestModule;
}
private void setupDaggerTestComponentInApplication() {
task incrementVersion << {
def propsFile = file("../gradle.properties")
def propsText = propsFile.getText()
def patternVersionNumber = Pattern.compile("app_version=(\\d+)\\.(\\d+)\\.(\\d+)")
def matcherVersionNumber = patternVersionNumber.matcher(propsText)
matcherVersionNumber.find()
def majorVersion = Integer.parseInt(matcherVersionNumber.group(1))
def minorVersion = Integer.parseInt(matcherVersionNumber.group(2))