diff options
| author | Bryan Donovan <[email protected]> | 2013-01-06 23:49:15 -0800 |
|---|---|---|
| committer | Bryan Donovan <[email protected]> | 2013-01-06 23:49:15 -0800 |
| commit | a0c614c620125efa0553aec2b470c8d8539b8ec5 (patch) | |
| tree | fe9a9e3524e20299800446f00af3628befcbf9f0 | |
| parent | 1a635e01e7e4899b0fd8f1746259d4598103c2c3 (diff) | |
| download | faker-a0c614c620125efa0553aec2b470c8d8539b8ec5.tar.xz faker-a0c614c620125efa0553aec2b470c8d8539b8ec5.zip | |
tests for streetAddress()
| -rw-r--r-- | lib/address.js | 12 | ||||
| -rw-r--r-- | lib/definitions.js | 2 | ||||
| -rw-r--r-- | test/address.unit.js | 55 |
3 files changed, 63 insertions, 6 deletions
diff --git a/lib/address.js b/lib/address.js index 0011a1d4..d1892748 100644 --- a/lib/address.js +++ b/lib/address.js @@ -32,12 +32,15 @@ exports.streetName = function () { } }; -exports.streetAddress = function (i) { - if (typeof i == 'undefined') { i = false; } +// +// TODO: change all these methods that accept a boolean to instead accept an options hash. +// +exports.streetAddress = function (useFullAddress) { + if (useFullAddress === undefined) { useFullAddress = false; } var address = ""; switch (random.number(2)) { case 0: - address = Helpers.replaceSymbolWithNumber("#####") + " " + this.streetName(); + address = Helpers.replaceSymbolWithNumber("#####") + " " + this.streetName(); break; case 1: address = Helpers.replaceSymbolWithNumber("####") + " " + this.streetName(); @@ -46,8 +49,7 @@ exports.streetAddress = function (i) { address = Helpers.replaceSymbolWithNumber("###") + " " + this.streetName(); break; } - var full_address = i ? address + " " + this.secondaryAddress() : address; - return full_address; + return useFullAddress ? (address + " " + this.secondaryAddress()) : address; }; exports.secondaryAddress = function () { diff --git a/lib/definitions.js b/lib/definitions.js index 8678bf63..c6ffa02f 100644 --- a/lib/definitions.js +++ b/lib/definitions.js @@ -101,7 +101,7 @@ exports.bs_adjective = function () {return ["implement", "utilize", "integrate", exports.bs_buzz = function () {return ["clicks-and-mortar", "value-added", "vertical", "proactive", "robust", "revolutionary", "scalable", "leading-edge", "innovative", "intuitive", "strategic", "e-business", "mission-critical", "sticky", "one-to-one", "24/7", "end-to-end", "global", "B2B", "B2C", "granular", "frictionless", "virtual", "viral", "dynamic", "24/365", "best-of-breed", "killer", "magnetic", "bleeding-edge", "web-enabled", "interactive", "dot-com", "sexy", "back-end", "real-time", "efficient", "front-end", "distributed", "seamless", "extensible", "turn-key", "world-class", "open-source", "cross-platform", "cross-media", "synergistic", "bricks-and-clicks", "out-of-the-box", "enterprise", "integrated", "impactful", "wireless", "transparent", "next-generation", "cutting-edge", "user-centric", "visionary", "customized", "ubiquitous", "plug-and-play", "collaborative", "compelling", "holistic", "rich"]; }; -exports.bs_noun = function () {return ["synergies", "web-readiness", "paradigms", "markets", "partnerships", "infrastructures", "platforms", "initiatives", "channels", "eyeballs", "communities", "ROI", "solutions", "e-tailers", "e-services", "action-items", "portals", "niches", "technologies", "content", "vortals", "supply-chains", "convergence", "relationships", "architectures", "interfaces", "e-markets", "e-commerce", "systems", "bandwidth", "infomediaries", "models", "mindshare", "deliverables", "users", "schemas", "networks", "applications", "metrics", "e-business", "functionalities", "experiences", "web services", "methodologies"]; }; +exports.bs_noun = function () {return ["synergies", "web-readiness", "paradigms", "markets", "partnerships", "infrastructures", "platforms", "initiatives", "channels", "eyeballs", "communities", "ROI", "solutions", "e-tailers", "e-services", "action-items", "portals", "niches", "technologies", "content", "vortals", "supply-chains", "convergence", "relationships", "architectures", "interfaces", "e-markets", "e-commerce", "systems", "bandwidth", "infomediaries", "models", "mindshare", "deliverables", "users", "schemas", "networks", "applications", "metrics", "e-business", "functionalities", "experiences", "web services", "methodologies", "stakeholders"]; }; exports.domain_suffix = function () {return ["co.uk", "com", "us", "uk", "ca", "biz", "info", "name"]; }; diff --git a/test/address.unit.js b/test/address.unit.js index c85ad019..07b5c43f 100644 --- a/test/address.unit.js +++ b/test/address.unit.js @@ -102,4 +102,59 @@ describe("name.js", function () { assert.ok(random.street_suffix.calledOnce); }); }); + + describe("streetAddress()", function () { + beforeEach(function () { + sinon.spy(Faker.Address, 'streetName'); + sinon.spy(Faker.Address, 'secondaryAddress'); + }); + + afterEach(function () { + Faker.Address.streetName.restore(); + Faker.Address.secondaryAddress.restore(); + }); + + it("occasionally returns a 5-digit street number", function () { + sinon.stub(random, 'number').returns(0); + var address = Faker.Address.streetAddress(); + var parts = address.split(' '); + + assert.equal(parts[0].length, 5); + assert.ok(Faker.Address.streetName.called); + + random.number.restore(); + }); + + it("occasionally returns a 4-digit street number", function () { + sinon.stub(random, 'number').returns(1); + var address = Faker.Address.streetAddress(); + var parts = address.split(' '); + + assert.equal(parts[0].length, 4); + assert.ok(Faker.Address.streetName.called); + + random.number.restore(); + }); + + it("occasionally returns a 3-digit street number", function () { + sinon.stub(random, 'number').returns(2); + var address = Faker.Address.streetAddress(); + var parts = address.split(' '); + + assert.equal(parts[0].length, 3); + assert.ok(Faker.Address.streetName.called); + assert.ok(!Faker.Address.secondaryAddress.called); + + random.number.restore(); + }); + + context("when useFullAddress is true", function () { + it("adds a secondary address to the result", function () { + var address = Faker.Address.streetAddress(true); + var parts = address.split(' '); + + assert.ok(Faker.Address.secondaryAddress.called); + }); + }); + }); }); |
