public void TryToAddMoreThanThreeElementsToFilterTest()
        {
            var projectNotesService = new ProjectNotesServiceMock(5);
            var target  = new OverviewWindowViewModel_Accessor(projectNotesService);
            var filter1 = new MetadataMock(new MetadataTypeMock {
                Name = "Sector"
            }, "Kriterium 1");
            var filter2 = new MetadataMock(new MetadataTypeMock {
                Name = "Sector"
            }, "Kriterium 2");
            var filter3 = new MetadataMock(new MetadataTypeMock {
                Name = "Sector"
            }, "Kriterium 3");
            var filter4 = new MetadataMock(new MetadataTypeMock {
                Name = "Sector"
            }, "Kriterium 4");

            Assert.AreEqual(0, target.Filters.Cast <IMetadata>().Count());
            target.AddFilter(filter1);
            target.AddFilter(filter2);
            target.AddFilter(filter3);
            Assert.AreEqual(3, target.Filters.Cast <IMetadata>().Count());
            target.AddFilter(filter4);
            Assert.AreEqual(3, target.Filters.Cast <IMetadata>().Count());
            Assert.AreEqual(filter1, target.Filters.Cast <IMetadata>().ElementAt(0));
            Assert.AreEqual(filter2, target.Filters.Cast <IMetadata>().ElementAt(1));
            Assert.AreEqual(filter3, target.Filters.Cast <IMetadata>().ElementAt(2));
        }
Beispiel #2
0
        public void UnifyingSerializationHelpers_Roundtrip_WithEnums()
        {
            var metadata = new MetadataMock();
            var uri1     = new Uri("test://id/1");
            var uri2     = new Uri("test://id/2");

            metadata.Observables.Add(uri1, new MockObservable <EntityEnum>(uri1));
            metadata.Observables.Add(uri2, new MockObservable <TypeWithEnum>(uri2));

            Expression <Func <IAsyncReactiveQbservable <EntityEnum>, IAsyncReactiveQbservable <TypeWithEnum>, IAsyncReactiveQbservable <TypeWithEnum> > > f = (io1, io2) => Concat(Select(io1, x => new TypeWithEnum {
                Enum = x
            }), io2);
            var invoked = BetaReducer.Reduce(
                Expression.Invoke(
                    f,
                    Expression.Parameter(typeof(IAsyncReactiveQbservable <EntityEnum>), uri1.ToCanonicalString()),
                    Expression.Parameter(typeof(IAsyncReactiveQbservable <TypeWithEnum>), uri2.ToCanonicalString())));
            var normalized = new ReactiveExpressionServices(typeof(object)).Normalize(invoked);

            var clientSerializer  = new ClientSerializationHelpers();
            var serviceSerializer = new UnifyingSerializationHelpers(metadata);
            var bonsai            = clientSerializer.Serialize(normalized);
            var roundtrip         = serviceSerializer.Deserialize <Expression>(bonsai);

            Assert.AreEqual(typeof(IAsyncReactiveQbservable <TypeWithEnum>), roundtrip.Type);
        }
        public void OnCurrentMainCriteriaChangedTest()
        {
            var projectNotesService = new ProjectNotesServiceMock(1);
            var metadataTypeSector  = new MetadataTypeMock {
                Name = "Sektor"
            };
            var metadataTypeCustomer = new MetadataTypeMock {
                Name = ""
            };
            var metadataSector = new MetadataMock {
                Description = "Sektorkriterium"
            };
            var metadataCustomer = new MetadataMock {
                Description = "Kundenkriterium"
            };

            projectNotesService.Metadata = new Dictionary <IMetadataType, ICollection <IMetadata> >
            {
                { metadataTypeSector, new List <IMetadata> {
                      metadataSector
                  } },
                { metadataTypeCustomer, new List <IMetadata> {
                      metadataCustomer
                  } }
            };

            var target = new OverviewWindowViewModel_Accessor(projectNotesService);

            target.ShowSubcriteriaCommand.Execute(metadataTypeCustomer);

            var c = target.Maincriteria.Cast <IMetadataType>().ElementAt(0);

            target.OnCurrentMainCriteriaChanged(c);
            Assert.AreEqual(target.Subcriteria.Cast <IMetadata>().ElementAt(0).Description, metadataSector.Description);
        }
Beispiel #4
0
        public void UnifyingSerializationHelpers_FindAndUnify_Subscription()
        {
            var metadata = new MetadataMock();
            var uri      = new Uri("test://id");

            metadata.Subscriptions.Add(uri, new MockSubscription(uri));

            var parameter = ExpressionSlim.Parameter(typeof(IAsyncReactiveQubscription).ToTypeSlim(), uri.ToCanonicalString());
            var mappings  = UnifyingSerializationHelpers.FindAndUnify(parameter, metadata);

            Assert.AreEqual(0, mappings.Count());
        }
Beispiel #5
0
        public void UnifyingSerializationHelpers_FindAndUnify_Parameterized()
        {
            var metadata = new MetadataMock();
            var uri      = new Uri("test://id");

            metadata.Observables.Add(uri, new MockParameterizedObservable <int, int>(uri));

            var parameter = ExpressionSlim.Parameter(typeof(Func <int, IAsyncReactiveQbservable <int> >).ToTypeSlim(), uri.ToCanonicalString());
            var mappings  = UnifyingSerializationHelpers.FindAndUnify(parameter, metadata);

            Assert.AreEqual(0, mappings.Count());
        }
        public void TryToAddElementTwiceToFilterTest()
        {
            var projectNotesService = new ProjectNotesServiceMock(5);
            var target = new OverviewWindowViewModel_Accessor(projectNotesService);
            var filter = new MetadataMock(new MetadataTypeMock {
                Name = "Sector"
            }, "Oberkriterium");

            Assert.AreEqual(0, target.Filters.Cast <IMetadata>().Count());
            target.AddFilter(filter);
            Assert.AreEqual(1, target.Filters.Cast <IMetadata>().Count());
            target.AddFilter(filter);
            Assert.AreEqual(1, target.Filters.Cast <IMetadata>().Count());
        }
Beispiel #7
0
        public void UnifyingSerializationHelpers_FindAndUnify_MismatchProperty()
        {
            var metadata = new MetadataMock();
            var uri      = new Uri("test://id");

            metadata.Observables.Add(uri, new MockObservable <TypeWithEnum>(uri));

            var structuralType = StructuralTypeSlimReference.Create(hasValueEqualitySemantics: true, StructuralTypeSlimKind.Record);

            structuralType.AddProperty(structuralType.GetProperty("eg://enum", typeof(int).ToTypeSlim(), EmptyReadOnlyCollection <TypeSlim> .Instance, canWrite: true));
            var observerableType = TypeSlim.Generic(((GenericDefinitionTypeSlim)typeof(IAsyncReactiveQbservable <>).ToTypeSlim()), new TypeSlim[] { structuralType }.ToReadOnly());
            var parameter        = ExpressionSlim.Parameter(observerableType, uri.ToCanonicalString());

            Assert.ThrowsException <InvalidOperationException>(() => UnifyingSerializationHelpers.FindAndUnify(parameter, metadata));
        }
        public void AddAndRemoveAndCallbackFilterTest()
        {
            var projectNotesService = new ProjectNotesServiceMock(5);
            var target = new OverviewWindowViewModel_Accessor(projectNotesService);
            var filter = new MetadataMock(new MetadataTypeMock {
                Name = "Sector"
            }, "Oberkriterium");

            target.AddFilter(filter);
            Assert.IsFalse(target.IsFilterViewVisible);
            Assert.IsFalse(target.IsDetailViewVisible);
            Assert.AreEqual(0, target.ProjectNotes.Count);
            target.RemoveFilter(filter);
            Assert.AreEqual(5, target.ProjectNotes.Count);
        }
        public void AddAndRemoveFilterTest()
        {
            var projectNotesService = new ProjectNotesServiceMock(5, "Sector");
            var n      = projectNotesService.Metadata.Keys.ElementAt(0).Name;
            var target = new OverviewWindowViewModel_Accessor(projectNotesService);
            var filter = new MetadataMock(new MetadataTypeMock()
            {
                Name = "Sector"
            }, "Oberkriterium");

            target.AddFilter(filter);
            Assert.AreEqual(target.IsFilterViewVisible, false);
            //Assert.AreEqual(target.ProjectNotes.Cast<IProjectNote>().Count(), 4);
            //target.RemoveFilter(filter);
            //Assert.AreEqual(target.ProjectNotes.Cast<IProjectNote>().Count(), 5);
        }