Exemple #1
0
        public void CanStreamAllUsersGivenPartialSelectionIsSpecified()
        {
            var stream = new DummyResultStream <UserEntity, UserDto>();

            IImmediateFlowQuery <UserEntity> query = Query <UserEntity>();

            PartialSelection <UserEntity, UserDto> selection = query
                                                               .PartialSelect(x => new UserDto(x.Firstname + " " + x.Lastname))
                                                               .Add(x => new UserDto
            {
                IsOnline = x.IsOnline,
                Id       = x.Id
            });

            Query <UserEntity>()
            .Streamed()
            .Select(stream, selection);

            Assert.That(stream.Items.Count, Is.EqualTo(4));

            foreach (UserDto item in stream.Items)
            {
                Assert.That(item.Id, Is.GreaterThan(0));
                Assert.That(item.Fullname, Is.Not.Null);
            }

            Assert.That(stream.Items.Any(x => x.IsOnline));
            Assert.That(stream.Items.Any(x => !x.IsOnline));
        }
Exemple #2
0
        public void CanStreamAllUsersGivenNoProjectionIsSpecified()
        {
            var stream = new DummyResultStream <UserEntity, UserEntity>();

            Query <UserEntity>()
            .Streamed()
            .Select(stream);

            Assert.That(stream.Items.Count, Is.EqualTo(4));
        }
Exemple #3
0
        public void TrowsGivenPartialSelectionIsNull()
        {
            var stream = new DummyResultStream <UserEntity, UserDto>();

            Assert
            .That
            (
                () => Query <UserEntity>()
                .Streamed()
                .Select(stream, (IPartialSelection <UserEntity, UserDto>)null),
                Throws.InstanceOf <ArgumentNullException>()
            );
        }
Exemple #4
0
        public void CanStreamAllUsersGivenNoProjectionUsingAnonymousType()
        {
            DummyResultStream <UserEntity, RoleEnum> stream = DummyResultStream <UserEntity> .CreateFrom(x => x.Role);

            Query <UserEntity>()
            .Streamed()
            .Select(stream, stream.Expression);

            Assert.That(stream.Items.Count, Is.EqualTo(4));
            Assert.That(stream.Items, Contains.Item(RoleEnum.Webmaster));
            Assert.That(stream.Items, Contains.Item(RoleEnum.Administrator));
            Assert.That(stream.Items, Contains.Item(RoleEnum.Standard));
        }
Exemple #5
0
        public void CanStreamAllUsersGivenNewExpressionIsSpecified()
        {
            var stream = new DummyResultStream <UserEntity, UserDto>();

            Query <UserEntity>()
            .Streamed()
            .Select
            (
                stream,
                x => new UserDto(x.Firstname + " " + x.Lastname)
            );

            Assert.That(stream.Items.Count, Is.EqualTo(4));
        }
Exemple #6
0
        public void TrowsGivenPartialSelectionIsEmpty()
        {
            var stream = new DummyResultStream <UserEntity, UserDto>();

            IPartialSelection <UserEntity, UserDto> selection = new PartialSelection <UserEntity, UserDto>(x => null);

            Assert
            .That
            (
                () => Query <UserEntity>()
                .Streamed()
                .Select(stream, selection),
                Throws.ArgumentException
            );
        }
Exemple #7
0
        public void CanStreamAllUsersGivenSelectSetupIsSpecified()
        {
            var stream = new DummyResultStream <UserEntity, UserDto>();

            IImmediateFlowQuery <UserEntity> query = Query <UserEntity>();

            ISelectSetup <UserEntity, UserDto> setup = query
                                                       .Select <UserDto>()
                                                       .For(x => x.Fullname).Use(x => x.Firstname + " " + x.Lastname)
                                                       .For(x => x.Id).Use(x => x.Id);

            query
            .Streamed()
            .Select(stream, setup);

            Assert.That(stream.Items.Count, Is.EqualTo(4));
        }
Exemple #8
0
        public void CanStreamAllUsersAsDtosGivenProjectionIsSpecified()
        {
            var stream = new DummyResultStream <UserEntity, UserDto>();

            Query <UserEntity>()
            .Streamed()
            .Select(stream, Projections.Alias(Projections.Property("Id"), "Id"));

            Assert.That(stream.Items.Count, Is.EqualTo(4));

            foreach (UserDto item in stream.Items)
            {
                Assert.That(item.Id, Is.GreaterThan(0));
                Assert.That(item.Fullname, Is.Null);
                Assert.That(item.IsOnline, Is.False);
            }
        }
Exemple #9
0
        public void CanStreamAllUsersGivenExpressionPropertiesIsSpecified()
        {
            var stream = new DummyResultStream <UserEntity, UserEntity>();

            Query <UserEntity>()
            .Streamed()
            .Select(stream, x => x.Id, x => x.Firstname, x => x.Lastname);

            Assert.That(stream.Items.Count, Is.EqualTo(4));

            foreach (UserEntity item in stream.Items)
            {
                Assert.That(item.Id, Is.GreaterThan(0));
                Assert.That(item.Firstname, Is.Not.Null);
                Assert.That(item.Lastname, Is.Not.Null);
                Assert.That(item.IsOnline, Is.False);
                Assert.That(item.Password, Is.Null);
            }
        }
Exemple #10
0
        public void CanStreamAllUsersAsDtosGivenStringPropertiesIsSpecified()
        {
            var stream = new DummyResultStream <UserEntity, UserDto>();

            Query <UserEntity>()
            .Streamed()
            .Select(stream, "Id", "IsOnline");

            Assert.That(stream.Items.Count, Is.EqualTo(4));

            foreach (UserDto item in stream.Items)
            {
                Assert.That(item.Id, Is.GreaterThan(0));
                Assert.That(item.Fullname, Is.Null);
            }

            Assert.That(stream.Items.Any(x => x.IsOnline));
            Assert.That(stream.Items.Any(x => !x.IsOnline));
        }
Exemple #11
0
        public void CanStreamAllUsersGivenMemberInitExpressionIsSpecified()
        {
            var stream = new DummyResultStream <UserEntity, UserDto>();

            Query <UserEntity>()
            .Streamed()
            .Select
            (
                stream,
                x => new UserDto(x.Firstname + " " + x.Lastname)
            {
                Id        = x.Id,
                IsOnline  = x.IsOnline,
                SettingId = x.Setting.Id,
                SomeValue = "Boo",
                Username  = x.Username
            }

            );

            Assert.That(stream.Items.Count, Is.EqualTo(4));
        }