コード例 #1
0
        public void should_refresh_cached_data_when_change_notified_with_subs_but_no_value_requested()
        {
            var fakeEntity1 = Substitute.For <IEntity>();

            fakeEntity1.Id.Returns(1);
            fakeEntity1.HasComponent <TestComponentThree>().Returns(false);

            var fakeEntity2 = Substitute.For <IEntity>();

            fakeEntity2.Id.Returns(2);
            fakeEntity2.HasComponent <TestComponentThree>().Returns(true);

            var fakeEntity3 = Substitute.For <IEntity>();

            fakeEntity2.Id.Returns(3);
            fakeEntity3.HasComponent <TestComponentThree>().Returns(true);

            var expectedData = new List <IEntity> {
                fakeEntity2, fakeEntity3
            }
            .Select(x => x.GetHashCode())
            .OrderBy(x => x);

            var fakeEntities = new List <IEntity> {
                fakeEntity1, fakeEntity2, fakeEntity3
            };

            var mockObservableGroup = Substitute.For <IObservableGroup>();

            var addingSubject = new Subject <IEntity>();

            mockObservableGroup.OnEntityAdded.Returns(addingSubject);

            var removingSubject = new Subject <IEntity>();

            mockObservableGroup.OnEntityRemoving.Returns(removingSubject);

            mockObservableGroup.GetEnumerator().Returns(x => fakeEntities.GetEnumerator());

            var computedGroupData = new TestComputedCollectionFromGroup(mockObservableGroup);

            computedGroupData.Subscribe(x => {});

            fakeEntities.Remove(fakeEntity2);
            removingSubject.OnNext(fakeEntity2);
            Assert.False(expectedData.SequenceEqual(computedGroupData.Value));

            fakeEntities.Add(fakeEntity2);
            addingSubject.OnNext(fakeEntity2);
            Assert.True(expectedData.SequenceEqual(computedGroupData.Value));

            fakeEntities.Remove(fakeEntity2);
            computedGroupData.ManuallyRefresh.OnNext(true);
            Assert.False(expectedData.SequenceEqual(computedGroupData.Value));
        }
コード例 #2
0
        public void should_refresh_when_entities_added_and_value_requested()
        {
            var fakeEntity1 = Substitute.For <IEntity>();

            fakeEntity1.Id.Returns(1);
            fakeEntity1.HasComponent <TestComponentThree>().Returns(false);

            var fakeEntity2 = Substitute.For <IEntity>();

            fakeEntity2.Id.Returns(2);
            fakeEntity2.HasComponent <TestComponentThree>().Returns(true);

            var fakeEntity3 = Substitute.For <IEntity>();

            fakeEntity2.Id.Returns(3);
            fakeEntity3.HasComponent <TestComponentThree>().Returns(true);

            var expectedData = new List <IEntity> {
                fakeEntity2, fakeEntity3
            }
            .Select(x => x.GetHashCode())
            .OrderBy(x => x);

            var fakeEntities = new List <IEntity> {
                fakeEntity1, fakeEntity2
            };

            var mockObservableGroup = Substitute.For <IObservableGroup>();

            var addedEvent = new Subject <IEntity>();

            mockObservableGroup.OnEntityAdded.Returns(addedEvent);
            mockObservableGroup.OnEntityRemoving.Returns(Observable.Empty <IEntity>());

            mockObservableGroup.GetEnumerator().Returns(x => fakeEntities.GetEnumerator());

            var computedGroupData = new TestComputedCollectionFromGroup(mockObservableGroup);

            fakeEntities.Add(fakeEntity3);
            addedEvent.OnNext(null);

            var actualData = computedGroupData.Value;

            Assert.Equal(expectedData, actualData);
        }
コード例 #3
0
        public void should_populate_on_creation()
        {
            var fakeEntity1 = Substitute.For <IEntity>();

            fakeEntity1.Id.Returns(1);
            fakeEntity1.HasComponent <TestComponentThree>().Returns(false);

            var fakeEntity2 = Substitute.For <IEntity>();

            fakeEntity2.Id.Returns(2);
            fakeEntity2.HasComponent <TestComponentThree>().Returns(true);

            var fakeEntity3 = Substitute.For <IEntity>();

            fakeEntity2.Id.Returns(3);
            fakeEntity3.HasComponent <TestComponentThree>().Returns(true);

            var expectedData = new List <IEntity> {
                fakeEntity2, fakeEntity3
            }
            .Select(x => x.GetHashCode())
            .OrderBy(x => x);

            var fakeEntities = new List <IEntity> {
                fakeEntity1, fakeEntity2, fakeEntity3
            };

            var mockObservableGroup = Substitute.For <IObservableGroup>();

            mockObservableGroup.OnEntityAdded.Returns(Observable.Empty <IEntity>());
            mockObservableGroup.OnEntityRemoving.Returns(Observable.Empty <IEntity>());
            mockObservableGroup.GetEnumerator().Returns(x => fakeEntities.GetEnumerator());

            var computedGroupData = new TestComputedCollectionFromGroup(mockObservableGroup);

            Assert.Equal(expectedData, computedGroupData.Value);
        }