Skip to content

Commit

Permalink
Merge branch 'master' into feature/lorem-faker
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/FakerDotNet/Faker.cs
#	src/FakerDotNet/FakerContainer.cs
#	tests/FakerDotNet.Tests/FakerContainerTests.cs
#	tests/FakerDotNet.Tests/FakerTests.cs
  • Loading branch information
mrstebo committed Oct 15, 2018
2 parents e62744e + b37a860 commit 060a5af
Show file tree
Hide file tree
Showing 8 changed files with 171 additions and 2 deletions.
55 changes: 55 additions & 0 deletions src/FakerDotNet/Data/FriendsData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
using System.Collections.Generic;

namespace FakerDotNet.Data
{
internal class FriendsData
{
public IEnumerable<string> Characters => new[]
{
"Rachel Green",
"Joey Tribbiani",
"Phoebe Buffay",
"Chandler Bing",
"Monica Geller",
"Ross Geller",
"Richard Burke",
"Janice Goralnik",
"Gunther",
"Emily Waltham",
"Carol Willick",
"Miss Chanandler Bong"
};

public IEnumerable<string> Locations => new[]
{
"Central Perk",
"Javu",
"945 Grove St Apt. 20",
"Ralph Lauren",
"New York Museum of Prehistoric History",
"Days of Our Lives",
"15 Yemen Road, Yemen"
};

public IEnumerable<string> Quotes => new[]
{
"We were on a break!",
"Forty-two to twenty-one! Like the turkey, Ross is done!",
"SEVEN! SEVEN! SEVEN!",
"I'm Monica. I’m disgusting. I stalk guys and keep their underpants.",
"Fine judge all you want but... married a lesbian, left a man at the altar, fell in love with a gay ice dancer, threw a girl’s wooden leg in the fire, LIVE IN A BOX.",
"Welcome to the real world. It sucks. You’re gonna love it!",
"Sure I peed on her. And if I had to, I’d pee on any one of you!",
"If the homo sapiens were, in fact, HOMO sapiens…is that why they’re extinct?",
"It’s a moo point. It’s like a cow’s opinion; it doesn’t matter. It’s moo.",
"You could not be any more wrong. You could try, but you would not be successful.",
"You’ve been BAMBOOZLED!",
"It was summer… and it was hot. Rachel was there… A lonely grey couch…”OH LOOK!” cried Ned, and then the kingdom was his forever. The End.",
"Je m’appelle Claude",
"I’m not so good with the advice. Can I interest you in a sarcastic comment?",
"Raspberries? Good. Ladyfingers? Good. Beef? GOOD!",
"Could I BE wearing any more clothes?",
"Oh no, two women love me. They're both gorgeous and sexy. My wallet's too small for my fifties AND MY DIAMOND SHOES ARE TOO TIGHT."
};
}
}
1 change: 1 addition & 0 deletions src/FakerDotNet/Faker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public static class Faker
public static IBooleanFaker Boolean { get; } = Container.Boolean;
public static IDateFaker Date { get; } = Container.Date;
public static IFakeFaker Fake { get; } = Container.Fake;
public static IFriendsFaker Friends { get; } = Container.Friends;
public static ILoremFaker Lorem { get; } = Container.Lorem;
public static INameFaker Name { get; } = Container.Name;
public static INumberFaker Number { get; } = Container.Number;
Expand Down
3 changes: 3 additions & 0 deletions src/FakerDotNet/FakerContainer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ internal interface IFakerContainer
IBooleanFaker Boolean { get; }
IDateFaker Date { get; }
IFakeFaker Fake { get; }
IFriendsFaker Friends { get; }
ILoremFaker Lorem { get; }
INameFaker Name { get; }
INumberFaker Number { get; }
Expand All @@ -28,6 +29,7 @@ public FakerContainer()
Boolean = new BooleanFaker();
Date = new DateFaker();
Fake = new FakeFaker(this);
Friends = new FriendsFaker(this);
Lorem = new LoremFaker(this);
Name = new NameFaker(this);
Number = new NumberFaker();
Expand All @@ -42,6 +44,7 @@ public FakerContainer()
public IBooleanFaker Boolean { get; }
public IDateFaker Date { get; }
public IFakeFaker Fake { get; }
public IFriendsFaker Friends { get; }
public ILoremFaker Lorem { get; }
public INameFaker Name { get; }
public INumberFaker Number { get; }
Expand Down
38 changes: 38 additions & 0 deletions src/FakerDotNet/Fakers/FriendsFaker.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
using FakerDotNet.Data;

namespace FakerDotNet.Fakers
{
public interface IFriendsFaker
{
string Character();
string Location();
string Quote();
}

internal class FriendsFaker : IFriendsFaker
{
private static readonly FriendsData Data = new FriendsData();

private readonly IFakerContainer _fakerContainer;

public FriendsFaker(IFakerContainer fakerContainer)
{
_fakerContainer = fakerContainer;
}

public string Character()
{
return _fakerContainer.Random.Element(Data.Characters);
}

public string Location()
{
return _fakerContainer.Random.Element(Data.Locations);
}

public string Quote()
{
return _fakerContainer.Random.Element(Data.Quotes);
}
}
}
7 changes: 7 additions & 0 deletions tests/FakerDotNet.Tests/FakerContainerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ public void Fake_returns_IFakeFaker()
{
Assert.IsInstanceOf<IFakeFaker>(_fakerContainer.Fake);
}

[Test]
public void Friends_returns_IFriendsFaker()
{
Assert.IsInstanceOf<IFriendsFaker>(_fakerContainer.Friends);
}

[Test]
public void Lorem_returns_ILoremFaker()
Expand Down Expand Up @@ -86,5 +92,6 @@ public void Zelda_returns_IZeldaFaker()
{
Assert.IsInstanceOf<IZeldaFaker>(_fakerContainer.Zelda);
}

}
}
6 changes: 6 additions & 0 deletions tests/FakerDotNet.Tests/FakerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ public void Fake_returns_IFakeFaker()
Assert.IsInstanceOf<IFakeFaker>(Faker.Fake);
}

[Test]
public void Friends_returns_IFriendsFaker()
{
Assert.IsInstanceOf<IFriendsFaker>(Faker.Friends);
}

[Test]
public void Lorem_returns_ILoremFaker()
{
Expand Down
4 changes: 2 additions & 2 deletions tests/FakerDotNet.Tests/Fakers/AddressFakerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -304,15 +304,15 @@ public void Latitude_returns_a_latitude()
{
A.CallTo(() => _fakerContainer.Number.Between(0, 180)).Returns(31.82743772556281);

Assert.AreEqual("-58.1725622744", _addressFaker.Latitude());
Assert.AreEqual((-58.1725622744).ToString("#.##########"), _addressFaker.Latitude());
}

[Test]
public void Longitude_returns_a_longitude()
{
A.CallTo(() => _fakerContainer.Number.Between(0, 360)).Returns(23.344516179048668);

Assert.AreEqual("-156.655483821", _addressFaker.Longitude());
Assert.AreEqual((-156.655483821).ToString("#.##########"), _addressFaker.Longitude());
}

[Test]
Expand Down
59 changes: 59 additions & 0 deletions tests/FakerDotNet.Tests/Fakers/FriendsFakerTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
using FakeItEasy;
using FakerDotNet.Data;
using FakerDotNet.Fakers;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FakerDotNet.Tests.Fakers
{
[TestFixture]
[Parallelizable]
public class FriendsFakerTests
{
[SetUp]
public void SetUp()
{
_fakerContainer = A.Fake<IFakerContainer>();
_friendsFaker = new FriendsFaker(_fakerContainer);
}

private static readonly FriendsData Data = new FriendsData();

private IFakerContainer _fakerContainer;
private IFriendsFaker _friendsFaker;

[Test]
public void Character_returns_a_character()
{
A.CallTo(() => _fakerContainer.Random.Element(
A<IEnumerable<string>>.That.IsSameSequenceAs(Data.Characters)))
.Returns("Rachel Green");

Assert.AreEqual("Rachel Green", _friendsFaker.Character());
}

[Test]
public void Location_returns_a_location()
{
A.CallTo(() => _fakerContainer.Random.Element(
A<IEnumerable<string>>.That.IsSameSequenceAs(Data.Locations)))
.Returns("15 Yemen Road, Yemen");

Assert.AreEqual("15 Yemen Road, Yemen", _friendsFaker.Location());
}

[Test]
public void Quote_returns_a_quote()
{
A.CallTo(() => _fakerContainer.Random.Element(
A<IEnumerable<string>>.That.IsSameSequenceAs(Data.Quotes)))
.Returns("Forty-two to twenty-one! Like the turkey, Ross is done!");

Assert.AreEqual("Forty-two to twenty-one! Like the turkey, Ross is done!", _friendsFaker.Quote());
}
}
}

0 comments on commit 060a5af

Please sign in to comment.