Skip to content

Instantly share code, notes, and snippets.

//create a map of key/value pairs, called deps (deps)
ext.deps = [:]
//def means we're making a local variable. We'll use this map to build our deps key/value
//pairs below
def versions = [:]
versions.google_services = "4.3.3"
versions.firebase_analytics = "17.2.2"
versions.lifecycle = "2.0.0-rc01"
versions.constraint_layout = "2.0.0-alpha2"
apply plugin: "com.vanniktech.android.junit.jacoco"
junitJacoco {
jacocoVersion = '0.8.5'
ignoreProjects = []
excludes = [
'**/R.class',
'**/R$*.class',
'**/*$$*',
'**/BuildConfig.*',
@Garyfimo
Garyfimo / build.gradle
Last active June 20, 2020 18:35
A nivel proyecto
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
apply from: 'versions.gradle'
addRepos(repositories)
dependencies {
classpath deps.android_gradle_plugin
classpath deps.kotlin.kotlin_gradle_plugin
classpath deps.jacoco_android
}
@Garyfimo
Garyfimo / build.gradle
Last active June 20, 2020 18:36
A nivel aplicación
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply from: '../jacoco.gradle'
android {
compileSdkVersion build_versions.target_sdk
defaultConfig {
sealed class ResultadoEvaluacion<out E, out V> {
data class Valor<out V>(val valor: V) : ResultadoEvaluacion<Nothing, V>()
data class Error<out E>(val error: E) : ResultadoEvaluacion<E, Nothing>()
companion object {
inline fun <V> build(function: () -> V): ResultadoEvaluacion<Exception, V> =
try {
Valor(
interface EvaluadorUseCase {
suspend fun evaluar(expresion: String): ResultadoEvaluacion<Exception, String>
}
interface EvaluadorExpresionUseCase {
suspend fun evaluarExpresion(expresion: String): ResultadoEvaluacion<Exception, String>
}
class ValidadorUseCaseImpl : ValidadorUseCase {
override suspend fun validar(expresion: String): ResultadoEvaluacion<Exception, Boolean> {
TODO("Not yet implemented")
}
}
import kotlinx.coroutines.runBlocking
import org.junit.Test
import org.junit.jupiter.api.Assertions.assertTrue
internal class ValidadorUseCaseImplTest {
private val mensajeExpresionNoValida = "Expresion No Valida."
private val validadorUseCase by lazy {
ValidadorUseCaseImpl()
sealed class ErrorEvaluacion(mensaje: String? = null) : Exception(mensaje) {
class ErrorValidacion : ErrorEvaluacion("Expresion No Valida.")
}