public void ReturnsNull_WhenQueryForUser_ReturnsNull()
            {
                const string principalIdentityName = "*****@*****.**";
                var principal = principalIdentityName.AsPrincipal();
                var query = new GetMyAffiliationByEstablishmentIdQuery
                {
                    Principal = principal,
                };
                var affiliation = new Affiliation
                {
                    Person = new Person { User = new User { Name = "something else" } },
                };
                var entities = new Mock<IQueryEntities>(MockBehavior.Strict).Initialize();
                entities.Setup(m => m.Query<Affiliation>()).Returns(new[] { affiliation }.AsQueryable);
                var handler = new GetMyAffiliationByEstablishmentIdHandler(entities.Object);

                var result = handler.Handle(query);

                result.ShouldBeNull();
            }
            public void ExecutesQuery_ToGetUserByName()
            {
                const string principalIdentityName = "*****@*****.**";
                var principal = principalIdentityName.AsPrincipal();
                var query = new GetMyAffiliationByEstablishmentIdQuery
                {
                    Principal = principal,
                };
                var affiliation = new Affiliation
                {
                    Person = new Person { User = new User { Name = principal.Identity.Name } }
                };
                var entities = new Mock<IQueryEntities>(MockBehavior.Strict).Initialize();
                entities.Setup(m => m.Query<Affiliation>()).Returns(new[] { affiliation }.AsQueryable);
                var handler = new GetMyAffiliationByEstablishmentIdHandler(entities.Object);

                handler.Handle(query);

                entities.Verify(m => m.Query<Affiliation>(), Times.Once());
            }
            public void ReturnsNull_WhenUserPerson_DoesNotHaveMatchingAffiliation()
            {
                const string principalIdentityName = "*****@*****.**";
                var principal = principalIdentityName.AsPrincipal();
                var query = new GetMyAffiliationByEstablishmentIdQuery
                {
                    Principal = principal,
                    EstablishmentId = 1,
                };
                var affiliations = new[]
                {
                    new Affiliation
                    {
                        EstablishmentId = 2,
                        Person = new Person { User = new User { Name = principal.Identity.Name } }
                    },
                    new Affiliation
                    {
                        EstablishmentId = 3,
                        Person = new Person { User = new User { Name = principal.Identity.Name } }
                    },
                    new Affiliation
                    {
                        EstablishmentId = 4,
                        Person = new Person { User = new User { Name = principal.Identity.Name } }
                    },
                };
                var entities = new Mock<IQueryEntities>(MockBehavior.Strict).Initialize();
                entities.Setup(m => m.Query<Affiliation>()).Returns(affiliations.AsQueryable);
                var handler = new GetMyAffiliationByEstablishmentIdHandler(entities.Object);

                var result = handler.Handle(query);

                result.ShouldBeNull();
            }