public void UpdateCurrencyCodeWhenProfileIsNotUserProfileWillThrow() { // Fixture setup var fixture = new Fixture(); var profile = new Mock <ProfileBase>().Object; var httpContextStub = new Mock <HttpContextBase>(); httpContextStub.SetupGet(ctx => ctx.Profile).Returns(profile); var sut = new DefaultCurrencyProfileService(httpContextStub.Object); // Exercise system and verify outcome Assert.Throws <InvalidOperationException>(() => fixture.Do((string currencyCode) => sut.UpdateCurrencyCode(currencyCode))); // Teardown }
public void UpdateCurrencyCodeWillSaveProfile() { // Fixture setup var fixture = new Fixture(); var currencyCode = fixture.CreateAnonymous("CurrencyCode"); var userProfileMock = new Mock <UserProfile>(); userProfileMock.SetupSet(up => up.Currency = currencyCode).Verifiable(); userProfileMock.Setup(up => up.Save()).Verifiable(); var httpContextStub = new Mock <HttpContextBase>(); httpContextStub.SetupGet(ctx => ctx.Profile).Returns(userProfileMock.Object); var sut = new DefaultCurrencyProfileService(httpContextStub.Object); // Exercise system sut.UpdateCurrencyCode(currencyCode); // Verify outcome userProfileMock.Verify(); // Teardown }