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 Get_OnNonGenericExodataWithDeclaration_ProvidesAllArgumentsToResolver() { var maxLength = new ExodataDeclaration <int>(7); var resolver = MockRepository.GenerateMock <IExodataResolver>(); resolver.Expect(x => x.TryResolve <int, object, object>(null)) .Callback <IExodataRequest <int, object, object> >(r => r.Symbol == maxLength && r.Context == Maybe <object> .NoValue && r.Subject == Maybe <object> .NoValue && r.Member == null) .Return(42.ToMaybe()); ExodataDeclaration.SetResolver(resolver); maxLength.Get(); resolver.VerifyAllExpectations(); }
public void Get_WhenWithNoDefault_ThrowsException() { var maxLength = new ExodataDeclaration <int>(); Assert.Throws <InvalidOperationException>(() => maxLength.Get()); }