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)); }
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); }
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()); }
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()); }
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); }