public void Adding_new_contact_works() { var firstname = NonEmptyStringOO.CreateBang("Homer"); var lastname = NonEmptyStringOO.CreateBang("Simpson"); var id = Guid.NewGuid(); var dob = Some(new DateTime(1956, 5, 12)); var twitterProfileUrl = NonEmptyStringOO.Create("https://twitter.com/homerjsimpson"); var address = None; var contact = new ContactOO( id, firstname, lastname, dob, twitterProfileUrl, address, new EmailContact()); var sut = new AddressbookOO(); // important design decision: do we have state in Addressbook or not? // should the following code return a modified list or have internal state? // // with state sut.Contacts.Should().BeEmpty(); sut.AddContact(contact); sut.Contacts.Should().HaveCount(1, "we added 1 contact"); }
private static AddressOO CreateAddress() { var zipCode = ZipcodeOO.CreateBang("58008"); var street = NonEmptyStringOO.CreateBang("742 Evergreen Terrace"); var city = NonEmptyStringOO.CreateBang("Springfield"); var address = AddressOO.Create(street, city, zipCode); return(address); }
public void Two_addresses_with_same_content_are_equal() { var zipCode = ZipcodeOO.CreateBang("12345"); var street = NonEmptyStringOO.CreateBang("742 Evergreen Terrace"); var city = NonEmptyStringOO.CreateBang("Springfield"); var address1 = AddressOO.Create(street, city, zipCode); var address2 = AddressOO.Create(street, city, zipCode); address1.Should().Be(address2); }
public void Creating_a_new_contact_happy_path() { var contact = CreateHomer(); contact.FirstName.Value.Should().Be("Homer"); contact.LastName.Value.Should().Be("Simpson"); contact.DateOfBirth.Should().BeEquivalentTo(F.Some(new DateTime(1956, 5, 12))); contact.TwitterProfileUrl.Should() .BeEquivalentTo(F.Some(NonEmptyStringOO.CreateBang("https://twitter.com/homerjsimpson"))); contact.ContactMethod.Should().BeOfType <EmailContact>(); }
public void Creating_address_works() { var zipCode = ZipcodeOO.CreateBang("12345"); var street = NonEmptyStringOO.CreateBang("742 Evergreen Terrace"); var city = NonEmptyStringOO.CreateBang("Springfield"); var addressOO = AddressOO.Create(street, city, zipCode); addressOO.City.Value.Should().Be("Springfield"); addressOO.Street.Value.Should().Be("742 Evergreen Terrace"); addressOO.Zipcode.Value.Should().Be("12345"); }
public void Two_addresses_with_different_content_are_not_equal() { var zipCode = ZipcodeOO.CreateBang("12345"); var street = NonEmptyStringOO.CreateBang("742 Evergreen Terrace"); var city1 = NonEmptyStringOO.CreateBang("Springfield"); var city2 = NonEmptyStringOO.CreateBang("Shelbyville"); var address1 = AddressOO.Create(street, city1, zipCode); var address2 = AddressOO.Create(street, city2, zipCode); address1.Should().NotBe(address2); }
public void Creating_a_zipcode_from_NonEmptyString_works(string input, bool isValid) { var result = ZipcodeOO.Create(NonEmptyStringOO.CreateBang(input)); if (isValid) { result.Match( AssertionHelper.NoneFails, SomeWithStringValueShouldBe(input)); } else { result.Match( AssertionHelper.NoneIsTrue, SomeWithStringValueShouldFail()); } }
private static ContactOO CreateHomer() { var firstname = NonEmptyStringOO.CreateBang("Homer"); var lastname = NonEmptyStringOO.CreateBang("Simpson"); var id = Guid.NewGuid(); var dateOfBirth = new DateTime(1956, 5, 12); var dob = F.Some(dateOfBirth); var twitterProfileUrl = NonEmptyStringOO.Create("https://twitter.com/homerjsimpson"); var address = F.None; var contact = new ContactOO(id, firstname, lastname, dob, twitterProfileUrl, address, new EmailContact()); return(contact); }
public void NonEmptyStringOO_creation_with_bang_works(string input, bool isValid) { if (isValid) { var result = NonEmptyStringOO.CreateBang(input); // Assert result.Should() .NotBeNull() .And.BeOfType <NonEmptyStringOO>(); result.Value.Should().Be(input); } else { Action action = () => NonEmptyStringOO.CreateBang(input); action.Should().Throw <ArgumentException>().WithMessage("String may not be empty or null!"); } }