public void Get_ByTypeOnly_UsesTypeDeclaration() { var resolver = new StandardExodataResolver(); resolver.Bind(ExodataDeclaration <int> .TypeDeclaration, 42); ExodataDeclaration.SetResolver(resolver); Assert.AreEqual(42, ExodataDeclaration.Get <int>()); }
public void Resolve_WithMultipleMembers_YieldsExodata() { var resolver = new StandardExodataResolver(); resolver.Bind(IntegerExodata.MinValue) .For <DateTime>(x => x.Day, x => x.Month) .To(42); Assert.AreEqual(42, resolver.TryResolve(IntegerExodata.MinValue).For <DateTime>(x => x.Day)); Assert.AreEqual(42, resolver.TryResolve(IntegerExodata.MinValue).For <DateTime>(x => x.Month)); }
public void Resolve_ThruImplicitCastOperator_ReturnsValue() { var resolver = new StandardExodataResolver(); resolver.Bind(StringExodata.MaxLength, 42); ExodataDeclaration.SetResolver(resolver); int value = StringExodata.MaxLength; Assert.AreEqual(42, value); }
public void ValidateValue_WithoutValidValue_ThrowsException() { var betweenOneAndTen = new ComparableExodataDeclaration <int>(1, 10, 5); var resolver = new StandardExodataResolver(); resolver.Bind(betweenOneAndTen, 42); ExodataDeclaration.SetResolver(resolver); Assert.Throws <ExodataValidationException <int> >(() => betweenOneAndTen.Get()); }
public void ValidateValue_WithValidValue_DoesNotThrowException() { var betweenOneAndTen = new ComparableExodataDeclaration <int>(1, 10, 5); var resolver = new StandardExodataResolver(); resolver.Bind(betweenOneAndTen, 7); ExodataDeclaration.SetResolver(resolver); Assert.AreEqual(7, betweenOneAndTen.Get()); }
public void Resolve_WithDerivedInstance_YieldsMostDerivedBindingsExodata() { var resolver = new StandardExodataResolver(); resolver.Bind(CommonExodata.Description) .For <DerivedTestSubject>() .To("Derived Surrogate Description"); BaseTestSubjectExodataSurrogate.ShouldYieldInstanceExodata = true; var value = resolver.TryResolve(CommonExodata.Description).For(new DerivedTestSubject()); Assert.AreEqual("Derived Surrogate Description", value); }
public void Get_WithValidArguments_ReturnsExodataResolverResults() { var maxLength = new ExodataDeclaration <int>(7); var resolver = new StandardExodataResolver(); resolver.Bind(maxLength) .For <string>() .To(42); ExodataDeclaration.SetResolver(resolver); var value = maxLength.For <string>(); Assert.AreEqual(42, value); }
public void Get_WithNoExodataResolver_UsesResolverFromIoc() { var maxLength = new ExodataDeclaration <int>(7); var exodataResolver = new StandardExodataResolver(); exodataResolver.Bind(maxLength) .For <string>() .To(42); Ioc.SetDependencyResolver(new DependencyResolver(symbol => symbol.ToMaybe().OfType <IDependencySymbol>().Where(x => x.DependencyType == typeof(IExodataResolver)).Select(x => (object)exodataResolver))); var value = maxLength.For <string>(); Assert.AreEqual(42, value); }