public void Register_DerivedPropertyExpression()
        {
            var anon  = new AnonymousData();
            var value = anon.Any <string>();

            anon.Register((DerivedModel m) => m.Unset, _ => value);
            var result = anon.Any <DerivedModel>(PopulateOption.Deep);

            Assert.Same(value, result.Unset);
        }
Exemple #2
0
        public void Register_PropertyExpression()
        {
            var anon  = new AnonymousData();
            var model = anon.Any <Model>();

            anon.Register((DeepModel m) => m.Model, a => model);
            var result = anon.Any <DeepModel>(PopulateOption.Deep);

            Assert.Same(model, result.Model);
        }
Exemple #3
0
        public void AnyCustomCollectionCreatesItems()
        {
            var anon = new AnonymousData();

            var result = anon.Any <CustomCollection>();

            Assert.True(result.Any());
        }
Exemple #4
0
        public void AnyListCreatesItems()
        {
            var anon = new AnonymousData();

            var result = anon.Any <List <int> >();

            Assert.NotNull(result);
        }
Exemple #5
0
        public void Any_ListOfType()
        {
            var anon = new AnonymousData();

            var result = (List <Model>)anon.Any(typeof(List <Model>));

            Assert.NotNull(result);
        }
Exemple #6
0
        public void AnyIAnonymousDataReturnsSelf()
        {
            var anon = new AnonymousData();

            var result = anon.Any <IAnonymousData>();

            Assert.Same(anon, result);
        }
Exemple #7
0
        public void Any_ConcreteTypeNotRegistered()
        {
            var anon = new AnonymousData();

            var result = (Model)anon.Any(typeof(Model));

            Assert.NotNull(result);
        }
Exemple #8
0
        public void Any_TupleIntString()
        {
            var anon = new AnonymousData();

            var result = (Tuple <int, string>)anon.Any(typeof(Tuple <int, string>));

            Assert.NotNull(result);
        }
Exemple #9
0
        public void AnyIEnumerableCreatesItems()
        {
            var anon = new AnonymousData();

            var result = anon.Any <IEnumerable <int> >();

            Assert.NotNull(result);
        }
Exemple #10
0
        public void Any_EnumerableOfType()
        {
            var anon = new AnonymousData();

            var result = (IEnumerable <Model>)anon.Any(typeof(IEnumerable <Model>));

            Assert.NotNull(result);
        }
Exemple #11
0
        public void Any_ArrayOfType()
        {
            var anon = new AnonymousData();

            var result = (Model[])anon.Any(typeof(Model[]));

            Assert.NotNull(result);
        }
Exemple #12
0
        public void AnyType()
        {
            var anon = new AnonymousData();

            var result = anon.Any(typeof(IAnonymousData));

            Assert.Same(anon, result);
        }
Exemple #13
0
        public void Any_ModelList()
        {
            var anon = new AnonymousData();

            var result = (ModelList)anon.Any(typeof(ModelList));

            Assert.NotNull(result);
        }
Exemple #14
0
        public void FreezeValue()
        {
            var anon = new AnonymousData();

            anon.Freeze(42);
            var result = anon.Any <int>();

            Assert.Equal(42, result);
        }
Exemple #15
0
        public void RegisterDefault()
        {
            var anon = new AnonymousData();

            // Registration happens in the class fixture AnonymousDataTestsFixture.
            var result = anon.Any <AnonymousDataTestsFixture.GloballyRegisteredModel>();

            Assert.Equal("xyzzy", result.Value);
        }
Exemple #16
0
        public void Register()
        {
            var anon = new AnonymousData();

            anon.Register <IModel>(f => new Model());
            var result = (IModel)anon.Any(typeof(IModel));

            Assert.NotNull(result);
        }
Exemple #17
0
        public void Any_PopulateShallow_ShouldPopulateFirstLevel()
        {
            var anon = new AnonymousData();

            var result = anon.Any <DeepModel>(PopulateOption.Shallow);

            Assert.NotNull(result);
            Assert.NotNull(result.Model);
            Assert.Equal(result.Model.Value, nameof(Model));
        }
Exemple #18
0
        public void Customize()
        {
            var anon = new AnonymousData();

            anon.Customize(new Customization());

            var result = (IModel)anon.Any(typeof(IModel));

            Assert.NotNull(result);
        }
        public void Any_Predicate_ShouldEnsurePredicate()
        {
            var anon = new AnonymousData();

            bool Predicate(int i) => (i % 2) == 0;

            var result = anon.Any <int>(Predicate);

            Assert.True(Predicate(result));
        }
Exemple #20
0
        public void SetMinMaxItemsConstrainsSize()
        {
            var anon = new AnonymousData();

            anon.SetMinimumItemCount(2);
            anon.SetMaximumItemCount(2);

            var result = anon.Any <List <int> >();

            Assert.Equal(2, result.Count);
        }
        public void Any_Populate_ShouldPopulateFirstLevel()
        {
            var anon = new AnonymousData();

            var result = anon.Any <DeepModel>();

            anon.Populate(result);

            Assert.NotNull(result);
            Assert.NotNull(result.Model);
            Assert.Equal(nameof(Model), result.Model.Value);
        }
Exemple #22
0
        public void Any_PopulateDeepWithCollections_ShouldPopulateCollections()
        {
            var anon = new AnonymousData();

            var result = anon.Any <DeepModelWithCollection>(PopulateOption.Deep);

            Assert.NotNull(result);
            Assert.NotEmpty(result.ReadOnlyNames);
            Assert.NotEmpty(result.InitializedNames);
            Assert.NotEmpty(result.UninitializedNames);
            Assert.NotEmpty(result.Dictionary);
        }
        public void AnyOfChar()
        {
            var anon       = new AnonymousData();
            var classifier = new Classifier <char>();

            classifier.AddClassification("GT", d => d > (char.MaxValue / 2));
            classifier.AddClassification("LT", d => d < (char.MaxValue / 2));

            classifier.Classify(() => anon.Any <char>());

            Assert.True(classifier["GT"] > 0.4);
            Assert.True(classifier["LT"] > 0.4);
        }
Exemple #24
0
        public void AnyOfInt16()
        {
            var anon       = new AnonymousData();
            var classifier = new Classifier <short>();

            classifier.AddClassification("GT", d => d > 0);
            classifier.AddClassification("LT", d => d < 0);

            classifier.Classify(() => anon.Any <short>());

            Assert.True(classifier["GT"] > 0.4);
            Assert.True(classifier["LT"] > 0.4);
        }
        public void AnyOfDateTimeOffset()
        {
            var anon       = new AnonymousData();
            var classifier = new Classifier <DateTimeOffset>();

            classifier.AddClassification("GT", d => d.Ticks > (DateTimeOffset.MaxValue.Ticks / 2));
            classifier.AddClassification("LT", d => d.Ticks < (DateTimeOffset.MaxValue.Ticks / 2));

            classifier.Classify(() => anon.Any <DateTimeOffset>());

            Assert.True(classifier["GT"] > 0.4);
            Assert.True(classifier["LT"] > 0.4);
        }
Exemple #26
0
        public void Any_Double()
        {
            var anon       = new AnonymousData();
            var classifier = new Classifier <double>();

            classifier.AddClassification("GT", d => d > 0);
            classifier.AddClassification("LT", d => d < 0);

            classifier.Classify(() => (double)anon.Any(typeof(double)));

            Assert.True(classifier["GT"] > 0.4);
            Assert.True(classifier["LT"] > 0.4);
        }
        public void TestAnyOfBool()
        {
            var anon       = new AnonymousData();
            var classifier = new Classifier <bool>();

            classifier.AddClassification("true", b => b);
            classifier.AddClassification("false", b => !b);

            classifier.Classify(() => anon.Any <bool>());

            Assert.True(classifier["true"] > 0.4);
            Assert.True(classifier["false"] > 0.4);
        }
Exemple #28
0
        public void Any_PopulateDeep_ShouldPopulateAllLevels()
        {
            var anon = new AnonymousData();

            anon.Freeze("xyzzy");

            var result = anon.Any <DeepModel>(PopulateOption.Deep);

            Assert.NotNull(result);
            Assert.NotNull(result.Model);
            Assert.Equal("Model", result.Model.Value);
            Assert.Equal("xyzzy", result.Model.Unset);
            Assert.True(result.Model.PrimitiveWasSet);
        }
Exemple #29
0
        public void AnyUnregisteredInterfaceShouldThrow()
        {
            var anon = new AnonymousData();

            try
            {
                anon.Any <INotifyPropertyChanged>();
            }
            catch (AnonymousDataException e)
            {
                Assert.Equal(typeof(INotifyPropertyChanged), e.AnonymousType);
                return;
            }

            Assertions.Fail("Any did not throw.");
        }
        public void AnyOfTimeSpan()
        {
            var anon       = new AnonymousData();
            var mid        = new TimeSpan(0);
            var classifier = new Classifier <TimeSpan>();

            classifier.AddClassification("GT", d => d > mid);
            classifier.AddClassification("LT", d => d < mid);

            classifier.Classify(() => anon.Any <TimeSpan>());

            AssertAll(
                "Distribution of values was not uniform.",
                () => Assert(classifier["GT"] > 0.4).IsTrue($"Roughly half the generated values should be greater than {mid}. Actual: {classifier["GT"]}."),
                () => Assert(classifier["LT"] > 0.4).IsTrue($"Roughly half the generated values should be less than {mid}. Actual: {classifier["LT"]}."));
        }