Skip to content

Commit

Permalink
Merge 08d224a into 3ca3075
Browse files Browse the repository at this point in the history
  • Loading branch information
Oni-zerone committed Mar 2, 2019
2 parents 3ca3075 + 08d224a commit 699a39a
Show file tree
Hide file tree
Showing 12 changed files with 448 additions and 4 deletions.
32 changes: 32 additions & 0 deletions Example/Pods/Pods.xcodeproj/project.pbxproj

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Example/PunkAPI.xcodeproj/project.pbxproj
Expand Up @@ -13,12 +13,14 @@
607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; };
607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; };
607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; };
9761024E222B328F00C3BD6B /* BeersRequestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9761024D222B328F00C3BD6B /* BeersRequestTests.swift */; };
9767CBF7221993F900E684C4 /* BeerParsingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CBF6221993F800E684C4 /* BeerParsingTests.swift */; };
9767CBFA2219958F00E684C4 /* BeerStubs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CBF82219958800E684C4 /* BeerStubs.swift */; };
9767CC092222B63700E684C4 /* URLBuildTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CC072222B60F00E684C4 /* URLBuildTests.swift */; };
9767CC0B2222BB1E00E684C4 /* MockSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CC0A2222BB1E00E684C4 /* MockSession.swift */; };
9767CC0D2222BDD000E684C4 /* BeerRequestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CC0C2222BDD000E684C4 /* BeerRequestTests.swift */; };
9767CC0F2223550E00E684C4 /* ConfigurationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CC0E2223550E00E684C4 /* ConfigurationTests.swift */; };
9767CC27222B299300E684C4 /* BeersRequestParametersTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767CC25222B286F00E684C4 /* BeersRequestParametersTests.swift */; };
EBB1B4D6901624C6A90359CA /* Pods_PunkAPI_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 46341D8F014E1940E53D4F02 /* Pods_PunkAPI_Tests.framework */; };
/* End PBXBuildFile section */

Expand Down Expand Up @@ -47,12 +49,14 @@
607FACE51AFB9204008FA782 /* PunkAPI_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PunkAPI_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
613B14F018C28CF1557EC3D5 /* Pods-PunkAPI_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PunkAPI_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PunkAPI_Tests/Pods-PunkAPI_Tests.debug.xcconfig"; sourceTree = "<group>"; };
9761024D222B328F00C3BD6B /* BeersRequestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeersRequestTests.swift; sourceTree = "<group>"; };
9767CBF6221993F800E684C4 /* BeerParsingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeerParsingTests.swift; sourceTree = "<group>"; };
9767CBF82219958800E684C4 /* BeerStubs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeerStubs.swift; sourceTree = "<group>"; };
9767CC072222B60F00E684C4 /* URLBuildTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLBuildTests.swift; sourceTree = "<group>"; };
9767CC0A2222BB1E00E684C4 /* MockSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSession.swift; sourceTree = "<group>"; };
9767CC0C2222BDD000E684C4 /* BeerRequestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeerRequestTests.swift; sourceTree = "<group>"; };
9767CC0E2223550E00E684C4 /* ConfigurationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationTests.swift; sourceTree = "<group>"; };
9767CC25222B286F00E684C4 /* BeersRequestParametersTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeersRequestParametersTests.swift; sourceTree = "<group>"; };
9A440A355337DF96D159D208 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
A4CA42C1E1AE14F816574722 /* Pods-PunkAPI_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PunkAPI_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.debug.xcconfig"; sourceTree = "<group>"; };
E294694CD6DD5DA5A6B471F1 /* Pods-PunkAPI_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PunkAPI_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-PunkAPI_Example/Pods-PunkAPI_Example.release.xcconfig"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -184,6 +188,8 @@
children = (
9767CC072222B60F00E684C4 /* URLBuildTests.swift */,
9767CC0C2222BDD000E684C4 /* BeerRequestTests.swift */,
9761024D222B328F00C3BD6B /* BeersRequestTests.swift */,
9767CC25222B286F00E684C4 /* BeersRequestParametersTests.swift */,
9767CC0A2222BB1E00E684C4 /* MockSession.swift */,
9767CC0E2223550E00E684C4 /* ConfigurationTests.swift */,
);
Expand Down Expand Up @@ -413,11 +419,13 @@
buildActionMask = 2147483647;
files = (
9767CC0D2222BDD000E684C4 /* BeerRequestTests.swift in Sources */,
9767CC27222B299300E684C4 /* BeersRequestParametersTests.swift in Sources */,
9767CBF7221993F900E684C4 /* BeerParsingTests.swift in Sources */,
9767CC0F2223550E00E684C4 /* ConfigurationTests.swift in Sources */,
9767CBFA2219958F00E684C4 /* BeerStubs.swift in Sources */,
9767CC0B2222BB1E00E684C4 /* MockSession.swift in Sources */,
9767CC092222B63700E684C4 /* URLBuildTests.swift in Sources */,
9761024E222B328F00C3BD6B /* BeersRequestTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
16 changes: 14 additions & 2 deletions Example/PunkAPI/ViewController.swift
Expand Up @@ -21,13 +21,25 @@ class ViewController: UIViewController {

@IBAction func loadBeerAction(_ sender: Any) {

PunkAPI().get(RandomBeerRequest(), queue: .main) { [weak self] beersResult in
let request = BeersRequest(filter: [.abv(condition: .more, value: 3)])

PunkAPI().get(request, queue: .main) { [weak self] beersResult in

guard let strongSelf = self else { return }
switch beersResult {

case .success(let beers):
strongSelf.label.text = beers.first?.name ?? "Not Found"
let string = beers.reduce(into: "", { (result, beer) in

guard let name = beer.name else { return }
if result.isEmpty {
result = name
return
}
return result.append(contentsOf: ", \(name)")
})

strongSelf.label.text = string.isEmpty ? "Not Found" : string

case .failure(let error):
strongSelf.label.text = error.localizedDescription
Expand Down
2 changes: 0 additions & 2 deletions Example/Tests/BeerRequestTests.swift
Expand Up @@ -6,8 +6,6 @@
// Copyright © 2019 CocoaPods. All rights reserved.
//

import Foundation

import XCTest
@testable import PunkAPI

Expand Down
125 changes: 125 additions & 0 deletions Example/Tests/BeersRequestParametersTests.swift
@@ -0,0 +1,125 @@
//
// BeersRequestTests.swift
// PunkAPI_Example
//
// Created by Andrea Altea on 02/03/2019.
// Copyright © 2019 CocoaPods. All rights reserved.
//

import XCTest
@testable import PunkAPI

class BeersRequestParametersTests: XCTestCase {

func testABVParameterGreater() {
let parameter = getParameter(.abv(condition: .more, value: 1.2))
XCTAssert(parameter.key == "abv_gt")
XCTAssert(1 == parameter.value as? Int)
}

func testABVParameterLessThan() {
let parameter = getParameter(.abv(condition: .less, value: 1.2))
XCTAssert(parameter.key == "abv_lt")
XCTAssert(1 == parameter.value as? Int)
}

func testIBUParameterGreater() {
let parameter = getParameter(.ibu(condition: .more, value: 1.2))
XCTAssert(parameter.key == "ibu_gt")
XCTAssert(1 == parameter.value as? Int)
}

func testIBUParameterLessThan() {
let parameter = getParameter(.ibu(condition: .less, value: 1.2))
XCTAssert(parameter.key == "ibu_lt")
XCTAssert(1 == parameter.value as? Int)
}

func testEBCParameterGreater() {
let parameter = getParameter(.ebc(condition: .more, value: 1.2))
XCTAssert(parameter.key == "ebc_gt")
XCTAssert(1 == parameter.value as? Int)
}

func testEBCParameterLessThan() {
let parameter = getParameter(.ebc(condition: .less, value: 1.2))
XCTAssert(parameter.key == "ebc_lt")
XCTAssert(1 == parameter.value as? Int)
}

func testBeerNameParameter() {
let parameter = getParameter(.beerName(value: "PunkIPA"))
XCTAssert(parameter.key == "beer_name")
XCTAssert("PunkIPA" == parameter.value as? String)
}

func testBeerNameParameterWithSpace() {
let parameter = getParameter(.beerName(value: "Punk IPA"))
XCTAssert(parameter.key == "beer_name")
XCTAssert("Punk_IPA" == parameter.value as? String)
}

func testYeastParameter() {
let parameter = getParameter(.yeast(value: "AmericanAle"))
XCTAssert(parameter.key == "yeast")
XCTAssert("AmericanAle" == parameter.value as? String)
}

func testYeastParameterWithSpace() {
let parameter = getParameter(.yeast(value: "American Ale"))
XCTAssert(parameter.key == "yeast")
XCTAssert("American_Ale" == parameter.value as? String)
}

func testBrewedParameterBefore() {
let parameter = getParameter(.brewed(condition: .less, value: Date(timeIntervalSinceReferenceDate: 5184000)))
XCTAssert(parameter.key == "brewed_before")
XCTAssert("03-2001" == parameter.value as? String)
}

func testBrewedParameterAfter() {
let parameter = getParameter(.brewed(condition: .more, value: Date(timeIntervalSinceReferenceDate: 2592000)))
XCTAssert(parameter.key == "brewed_after")
XCTAssert("01-2001" == parameter.value as? String)
}

func testHopsParameter() {
let parameter = getParameter(.hops(value: "Ahtanum"))
XCTAssert(parameter.key == "hops")
XCTAssert("Ahtanum" == parameter.value as? String)
}

func testHopsParameterWithSpace() {
let parameter = getParameter(.hops(value: "Chi nook"))
XCTAssert(parameter.key == "hops")
XCTAssert("Chi_nook" == parameter.value as? String)
}

func testFoodParameter() {
let parameter = getParameter(.food(value: "Cheesecake"))
XCTAssert(parameter.key == "food")
XCTAssert("Cheesecake" == parameter.value as? String)
}

func testFoodParameterWithSpace() {
let parameter = getParameter(.food(value: "Spicy carne"))
XCTAssert(parameter.key == "food")
XCTAssert("Spicy_carne" == parameter.value as? String)
}

func testIdsParameterSingle() {
let parameter = getParameter(.ids(value: [34]))
XCTAssert(parameter.key == "ids")
XCTAssert("34" == parameter.value as? String)
}

func testIdsParameterMultiple() {
let parameter = getParameter(.ids(value: [34, 5, 21, 9]))
XCTAssert(parameter.key == "ids")
XCTAssert("34|5|21|9" == parameter.value as? String)
}

private func getParameter(_ requestParameter: BeersRequest.Parameter) -> RequestParameter {
return requestParameter.parameter
}
}

0 comments on commit 699a39a

Please sign in to comment.