Esempio n. 1
0
        public async Task UnapproveAsyncShouldReturnFalseWithInvalidPartnerIdUsingMoq()
        {
            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var manager = new ApplicationUser {
                Email = "TestEmail", Id = "TestManagerId"
            };
            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = false, Manager = manager, ManagerId = manager.Id, CompanyName = "TestCompany", CompanyUrl = "TestUrl"
                },
                new Partner {
                    Id = 2, IsApproved = true, Manager = manager
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(partners.AsQueryable());

            var service = new PartnersService(repository.Object, null, null);

            Assert.False(await service.UnapproveAsync(42));

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
        }
Esempio n. 2
0
        public void GetAllApprovedGenericShouldMapCorrectlyUsingMoq()
        {
            AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly);

            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var manager = new ApplicationUser {
                Email = "TestEmail"
            };
            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = true, Manager = manager, CompanyName = "TestCompany", CompanyUrl = "TestUrl"
                },
                new Partner {
                    Id = 2, IsApproved = true, Manager = manager
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(partners.AsQueryable());

            var service = new PartnersService(repository.Object, null, null);

            Assert.Equal(1, service.GetAllApproved <PartnerViewModel>().FirstOrDefault().Id);
            Assert.Equal("TestCompany", service.GetAllApproved <PartnerViewModel>().FirstOrDefault().CompanyName);
            Assert.Equal("TestUrl", service.GetAllApproved <PartnerViewModel>().FirstOrDefault().CompanyUrl);
            Assert.Equal("TestEmail", service.GetAllApproved <PartnerViewModel>().FirstOrDefault().ManagerEmail);

            repository.Verify(x => x.AllAsNoTracking(), Times.Exactly(4));
        }
        /// <summary>
        /// Updates a user's profile. A user can only update their own profile andshould only be called within the context of a logged in user.
        /// Documentation https://developers.google.com/partners/v2/reference/users/updateProfile
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Partners service.</param>
        /// <param name="body">A valid Partners v2 body.</param>
        /// <param name="optional">Optional paramaters.</param>
        /// <returns>UserProfileResponse</returns>
        public static UserProfile UpdateProfile(PartnersService service, UserProfile body, UsersUpdateProfileOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }
                if (body == null)
                {
                    throw new ArgumentNullException("body");
                }

                // Building the initial request.
                var request = service.Users.UpdateProfile(body);

                // Applying optional parameters to the request.
                request = (UsersResource.UpdateProfileRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return(request.Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request Users.UpdateProfile failed.", ex);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Updates the specified lead.
        /// Documentation https://developers.google.com/partners/v2/reference/v2/updateLeads
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Partners service.</param>
        /// <param name="body">A valid Partners v2 body.</param>
        /// <param name="optional">Optional paramaters.</param>
        /// <returns>LeadResponse</returns>
        public static Lead UpdateLeads(PartnersService service, Lead body, V2UpdateLeadsOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }
                if (body == null)
                {
                    throw new ArgumentNullException("body");
                }

                // Building the initial request.
                var request = service.V2.UpdateLeads(body);

                // Applying optional parameters to the request.
                request = (V2Resource.UpdateLeadsRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return(request.Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request V2.UpdateLeads failed.", ex);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Gets an Exam Token for a Partner's user to take an exam in the Exams System
        /// Documentation https://developers.google.com/partners/v2/reference/exams/getToken
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Partners service.</param>
        /// <param name="examType">The exam type we are requesting a token for.</param>
        /// <param name="optional">Optional paramaters.</param>
        /// <returns>ExamTokenResponse</returns>
        public static ExamToken GetToken(PartnersService service, string examType, ExamsGetTokenOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }
                if (examType == null)
                {
                    throw new ArgumentNullException(examType);
                }

                // Building the initial request.
                var request = service.Exams.GetToken(examType);

                // Applying optional parameters to the request.
                request = (ExamsResource.GetTokenRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return(request.Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request Exams.GetToken failed.", ex);
            }
        }
Esempio n. 6
0
        public void GetAllRequestsGenericShouldReturnCorrectCountUsingMoq()
        {
            AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly);

            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var manager = new ApplicationUser {
                Email = "TestEmail"
            };
            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = false, Manager = manager
                },
                new Partner {
                    Id = 2, IsApproved = true, Manager = manager
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(partners.AsQueryable());

            var service = new PartnersService(repository.Object, null, null);

            Assert.Single(service.GetAllRequests <PartnerViewModel>());

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
        }
        /// <summary>
        /// Deletes a user's company relation. Unaffiliaites the user from a company.
        /// Documentation https://developers.google.com/partners/v2/reference/users/deleteCompanyRelation
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Partners service.</param>
        /// <param name="userId">The ID of the user. Can be set to <code>me</code> to meanthe currently authenticated user.</param>
        /// <param name="optional">Optional paramaters.</param>
        /// <returns>EmptyResponse</returns>
        public static Empty DeleteCompanyRelation(PartnersService service, string userId, UsersDeleteCompanyRelationOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }
                if (userId == null)
                {
                    throw new ArgumentNullException(userId);
                }

                // Building the initial request.
                var request = service.Users.DeleteCompanyRelation(userId);

                // Applying optional parameters to the request.
                request = (UsersResource.DeleteCompanyRelationRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return(request.Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request Users.DeleteCompanyRelation failed.", ex);
            }
        }
Esempio n. 8
0
        public async Task GetClientsTest()
        {
            var partners = new List <Partners>
            {
                new Partners()
                {
                    PartnerID = 1
                },
                new Partners()
                {
                    CompanyName = "JJJ"
                },
            };

            var fakeRepositoryMock = new Mock <IPartnersRepository>();

            fakeRepositoryMock.Setup(x => x.GetAll()).ReturnsAsync(partners);


            var partnersService = new PartnersService(fakeRepositoryMock.Object);

            var resultPartners = await partnersService.GetPartners();

            Assert.Collection(resultPartners, partners =>
            {
                Assert.Equal(1, partners.PartnerID);
            },
                              partners =>
            {
                Assert.Equal("JJJ", partners.CompanyName);
            });
        }
Esempio n. 9
0
        public async Task EditAsyncGenericShouldReturnFalseWithInvalidPartnerIdUsingMoq()
        {
            AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly);

            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var manager = new ApplicationUser {
                Email = "TestEmail", Id = "TestManagerId"
            };
            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = false, Manager = manager, ManagerId = manager.Id, CompanyName = "TestCompany", CompanyUrl = "TestUrl"
                },
                new Partner {
                    Id = 2, IsApproved = true, Manager = manager
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(partners.AsQueryable());

            var service = new PartnersService(repository.Object, null, null);

            var model = new EditPartnerViewModel {
            };

            Assert.False(await service.EditAsync <EditPartnerViewModel>(model, null));

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
        }
        public void AddPartnerAsyncShouldReturnPartnerCorrectly()
        {
            var options = new DbContextOptionsBuilder <IntillegioContext>()
                          .UseInMemoryDatabase(databaseName: "Add_Partner_Db")
                          .Options;

            var dbContext = new IntillegioContext(options);

            var partnerBindingModel = new AdminPartnerBindingModel
            {
                Name       = "Google",
                Logo155X75 = "https://i.postimg.cc/3wD5nJWy/Google.png",
                About      = "Our mission is to organize the world’s information and make it universally accessible and useful.",
            };

            var mapper = new Mock <IMapper>();

            mapper.Setup(m => m.Map <Partner>(partnerBindingModel))
            .Returns(new Partner
            {
                Name       = "Google",
                Logo155X75 = "https://i.postimg.cc/3wD5nJWy/Google.png",
                About      = "Our mission is to organize the world’s information and make it universally accessible and useful.",
            });

            var service = new PartnersService(dbContext, mapper.Object, null);

            service.AddPartnerAsync(partnerBindingModel);
            Assert.True(dbContext.Partners.Any(n => n.Name == partnerBindingModel.Name));
            Assert.True(dbContext.Partners.Any(a => a.Logo155X75 == partnerBindingModel.Logo155X75));
            Assert.True(dbContext.Partners.Any(b => b.About == partnerBindingModel.About));
        }
Esempio n. 11
0
        public void GetRequestsCountShouldWorkCorrectlyUsingMoq()
        {
            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var manager = new ApplicationUser {
                Email = "TestEmail"
            };
            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = false, Manager = manager, CompanyName = "TestCompany", CompanyUrl = "TestUrl"
                },
                new Partner {
                    Id = 2, IsApproved = true, Manager = manager
                },
                new Partner {
                    Id = 3, IsApproved = true, Manager = manager
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(partners.AsQueryable());

            var service = new PartnersService(repository.Object, null, null);

            Assert.Equal(1, service.GetRequestsCount());

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
        }
Esempio n. 12
0
        public async Task UndeleteAsyncShouldWorkCorrectlyUsingMoq()
        {
            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var store       = new Mock <IUserStore <ApplicationUser> >();
            var userManager = new Mock <UserManager <ApplicationUser> >(store.Object, null, null, null, null, null, null, null, null);

            var managers = new List <ApplicationUser>
            {
                new ApplicationUser {
                    Id = "TestManagerId1", Email = "TestEmail1", PartnerId = null
                },
                new ApplicationUser {
                    Id = "TestManagerId2", Email = "TestEmail2"
                },
            };
            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = false, IsDeleted = true, DeletedOn = DateTime.UtcNow, Manager = managers.FirstOrDefault(), ManagerId = managers.FirstOrDefault().Id, CompanyName = "TestCompany", CompanyUrl = "TestUrl"
                },
                new Partner {
                    Id = 2, IsApproved = true
                },
            };

            repository.Setup(r => r.AllAsNoTrackingWithDeleted()).Returns(partners.AsQueryable());
            repository.Setup(r => r.Undelete(It.IsAny <Partner>())).Callback((Partner item) =>
            {
                var foundPartner       = partners.FirstOrDefault(x => x.Id == item.Id);
                foundPartner.IsDeleted = false;
                foundPartner.DeletedOn = null;
            });
            repository.Setup(r => r.SaveChangesAsync()).Verifiable();

            userManager.Setup(r => r.FindByIdAsync(It.IsAny <string>()))
            .Returns(async(string userId) => await Task.FromResult <ApplicationUser>(managers.FirstOrDefault(x => x.Id == userId)));
            userManager.Setup(r => r.UpdateAsync(It.IsAny <ApplicationUser>()))
            .Returns(async(ApplicationUser user) =>
            {
                var foundManager       = managers.FirstOrDefault(x => x.Id == user.Id);
                foundManager.PartnerId = user.PartnerId;
                return(await Task.FromResult(IdentityResult.Success));
            });

            var service = new PartnersService(repository.Object, userManager.Object, null);

            Assert.True(await service.UndeleteAsync(1));
            Assert.False(partners.FirstOrDefault().IsDeleted);
            Assert.Null(partners.FirstOrDefault().DeletedOn);
            Assert.Equal(1, managers.FirstOrDefault().PartnerId);

            repository.Verify(x => x.AllAsNoTrackingWithDeleted(), Times.Once);
            repository.Verify(x => x.Undelete(It.IsAny <Partner>()), Times.Once);
            repository.Verify(x => x.SaveChangesAsync());

            userManager.Verify(x => x.FindByIdAsync(It.IsAny <string>()), Times.Once);
            userManager.Verify(x => x.UpdateAsync(It.IsAny <ApplicationUser>()), Times.Once);
        }
 public PartnersController(PartnersRepository partnersRepository, PartnersService partnersService, IMapper mapper, PaginatedMetaService paginatedMetaService, FileHelper fileHelper)
 {
     _partnersRepository   = partnersRepository;
     _partnersService      = partnersService;
     _mapper               = mapper;
     _paginatedMetaService = paginatedMetaService;
     _fileHelper           = fileHelper;
 }
Esempio n. 14
0
        public async Task CreateAsyncGenericShouldIncreaseCountUsingMoq()
        {
            AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly);

            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var store       = new Mock <IUserStore <ApplicationUser> >();
            var userManager = new Mock <UserManager <ApplicationUser> >(store.Object, null, null, null, null, null, null, null, null);

            var managers = new List <ApplicationUser>
            {
                new ApplicationUser {
                    Id = "TestManagerId1", Email = "TestEmail1", PartnerId = 1
                },
                new ApplicationUser {
                    Id = "TestManagerId2", Email = "TestEmail2"
                },
            };

            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = true, Manager = managers.FirstOrDefault(), ManagerId = managers.FirstOrDefault().Id, CompanyName = "TestCompany", CompanyUrl = "TestUrl"
                },
                new Partner {
                    Id = 2, IsApproved = true
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(partners.AsQueryable());
            repository.Setup(r => r.AddAsync(It.IsAny <Partner>())).Callback((Partner item) => partners.Add(item));
            repository.Setup(r => r.SaveChangesAsync()).Verifiable();

            userManager.Setup(r => r.FindByIdAsync(It.IsAny <string>()))
            .Returns(async(string userId) => await Task.FromResult <ApplicationUser>(managers.FirstOrDefault(x => x.Id == userId)));
            userManager.Setup(r => r.UpdateAsync(It.IsAny <ApplicationUser>()))
            .Returns(async(ApplicationUser user) =>
            {
                var foundManager       = managers.FirstOrDefault(x => x.Id == user.Id);
                foundManager.PartnerId = user.PartnerId;
                return(await Task.FromResult(IdentityResult.Success));
            });

            var service = new PartnersService(repository.Object, userManager.Object, null);

            var model = new CreatePartnerInputViewModel {
            };

            Assert.True(await service.CreateAsync <CreatePartnerInputViewModel>(model, "TestManagerId2"));
            Assert.Equal(3, partners.Count);

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
            repository.Verify(x => x.AddAsync(It.IsAny <Partner>()), Times.Once);
            repository.Verify(x => x.SaveChangesAsync());

            userManager.Verify(x => x.FindByIdAsync(It.IsAny <string>()), Times.Once);
            userManager.Verify(x => x.UpdateAsync(It.IsAny <ApplicationUser>()), Times.Once);
        }
Esempio n. 15
0
        public async Task EditAsyncGenericShouldWorkCorrectlyWithLogoUsingMoq()
        {
            AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly);

            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var imageService = new Mock <IImagesService>();

            var manager = new ApplicationUser {
                Email = "TestEmail", Id = "TestManagerId"
            };
            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = false, Manager = manager, ManagerId = manager.Id, CompanyName = "TestCompany", CompanyUrl = "TestUrl"
                },
                new Partner {
                    Id = 2, IsApproved = true, Manager = manager
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(partners.AsQueryable());
            repository.Setup(r => r.Update(It.IsAny <Partner>())).Callback((Partner item) =>
            {
                var foundPartner         = partners.FirstOrDefault(x => x.Id == item.Id);
                foundPartner.CompanyName = item.CompanyName;
                foundPartner.CompanyUrl  = item.CompanyUrl;
                foundPartner.LogoUrl     = item.LogoUrl;
            });
            repository.Setup(r => r.SaveChangesAsync()).Verifiable();

            imageService.Setup(r => r.UploadCloudinaryImageAsync(It.IsAny <IFormFile>(), It.IsAny <string>()))
            .Returns(async(IFormFile image, string path) => await Task.FromResult(path + "/" + image.FileName));

            var service = new PartnersService(repository.Object, null, imageService.Object);

            var model = new EditPartnerViewModel
            {
                Id          = 1,
                CompanyName = "TestCompanyEdited",
                CompanyUrl  = "TestUrlEdited",
            };

            Assert.True(await service.EditAsync <EditPartnerViewModel>(model, new FormFile(null, 0, 0, "test", "test.png")));
            Assert.Equal("TestCompanyEdited", partners.FirstOrDefault(x => x.Id == 1).CompanyName);
            Assert.Equal("TestUrlEdited", partners.FirstOrDefault(x => x.Id == 1).CompanyUrl);
            Assert.Equal("partners/test.png", partners.FirstOrDefault(x => x.Id == 1).LogoUrl);

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
            repository.Verify(x => x.Update(It.IsAny <Partner>()), Times.Once);
            repository.Verify(x => x.SaveChangesAsync());

            imageService.Verify(x => x.UploadCloudinaryImageAsync(It.IsAny <IFormFile>(), It.IsAny <string>()), Times.Once);
        }
        public void GetPartnersLogosShouldGetPartnersLogosCorrectly()
        {
            var mockList = new List <PartnerViewModel>
            {
                new PartnerViewModel
                {
                    Name       = "Google",
                    Logo155X75 = "https://i.postimg.cc/3wD5nJWy/Google.png",
                    About      = "Our mission is to organize the world’s information and make it universally accessible and useful.",
                },
                new PartnerViewModel
                {
                    Name       = "NASA",
                    Logo155X75 = "https://i.postimg.cc/zfMDGcHh/8867-Microsoft-5-F00-Logo-2-D00-for-2-D00-screen.jpg",
                    About      = "Our people and their stories are what makes us one of the world’s most dynamic companies.",
                },
                new PartnerViewModel
                {
                    Name       = "Microsoft",
                    Logo155X75 = "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NASA_logo.svg/1920px-NASA_logo.svg.png",
                    About      = "The National Aeronautics and Space Administration (NASA, /ˈnæsə/) is an independent agency of the United States Federal Government responsible for the civilian space program, as well as aeronautics and aerospace research. NASA was established in 1958, succeeding the National Advisory Committee for Aeronautics (NACA).",
                }
            };

            var options = new DbContextOptionsBuilder <IntillegioContext>()
                          .UseInMemoryDatabase(databaseName: "Get_All_Partners_Db")
                          .Options;
            var dbContext = new IntillegioContext(options);

            var mapper = new Mock <IMapper>();

            mapper.Setup(m => m.Map <IEnumerable <PartnerViewModel> >(
                             dbContext.Partners))
            .Returns(mockList);

            var partnerCount = 3;

            for (int i = 0; i < partnerCount; i++)
            {
                dbContext.Partners.Add(new Partner());
            }

            dbContext.SaveChanges();
            var service = new PartnersService(dbContext, mapper.Object, null);

            var allPartners = service.GetPartnersLogos();

            Assert.NotNull(allPartners);
        }
        public void GetPartnersForAdminShouldGetPartnersCorrectly()
        {
            var mockList = new List <AdminPartnerViewModel>
            {
                new AdminPartnerViewModel
                {
                    Name = "Google"
                },
                new AdminPartnerViewModel
                {
                    Name = "NASA"
                },
                new AdminPartnerViewModel
                {
                    Name = "Microsoft"
                }
            };

            var options = new DbContextOptionsBuilder <IntillegioContext>()
                          .UseInMemoryDatabase(databaseName: "Get_All_Partners_for_Admin_Db")
                          .Options;
            var dbContext = new IntillegioContext(options);

            var mapper = new Mock <IMapper>();

            mapper.Setup(m => m.Map <IEnumerable <AdminPartnerViewModel> >(
                             dbContext.Partners))
            .Returns(mockList);

            var partnerCount = 3;

            for (int i = 0; i < partnerCount; i++)
            {
                dbContext.Partners.Add(new Partner());
            }

            dbContext.SaveChanges();
            var service = new PartnersService(dbContext, mapper.Object, null);

            var allPartners = service.GetPartnersForAdmin();

            Assert.NotNull(allPartners);
        }
Esempio n. 18
0
        /// <summary>
        /// Logs a user event.
        /// Documentation https://developers.google.com/partners/v2/reference/userEvents/log
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Partners service.</param>
        /// <param name="body">A valid Partners v2 body.</param>
        /// <returns>LogUserEventResponseResponse</returns>
        public static LogUserEventResponse Log(PartnersService service, LogUserEventRequest body)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }
                if (body == null)
                {
                    throw new ArgumentNullException("body");
                }

                // Make the request.
                return(service.UserEvents.Log(body).Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request UserEvents.Log failed.", ex);
            }
        }
        public void DeletePartnerAsyncShouldDeletePartnerCorrectly()
        {
            var options = new DbContextOptionsBuilder <IntillegioContext>()
                          .UseInMemoryDatabase(databaseName: "Delete_Partner_Db")
                          .Options;

            var dbContext = new IntillegioContext(options);

            var service = new PartnersService(dbContext, null, null);

            var partner = new Partner();

            dbContext.Partners.Add(partner);
            dbContext.SaveChanges();

            var partnerId = dbContext.Partners.LastOrDefault().Id;

            service.DeletePartnerAsync(partnerId);

            Assert.True(dbContext
                        .Partners
                        .Any(a => a.Id == partnerId) == false);
        }
Esempio n. 20
0
        /// <summary>
        /// Gets Partners Status of the logged in user's agency.Should only be called if the logged in user is the admin of the agency.
        /// Documentation https://developers.google.com/partners/v2/reference/v2/getPartnersstatus
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Partners service.</param>
        /// <param name="optional">Optional paramaters.</param>
        /// <returns>GetPartnersStatusResponseResponse</returns>
        public static GetPartnersStatusResponse GetPartnersstatus(PartnersService service, V2GetPartnersstatusOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }

                // Building the initial request.
                var request = service.V2.GetPartnersstatus();

                // Applying optional parameters to the request.
                request = (V2Resource.GetPartnersstatusRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return(request.Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request V2.GetPartnersstatus failed.", ex);
            }
        }
Esempio n. 21
0
        /// <summary>
        /// Lists advertiser leads for a user's associated company.Should only be called within the context of an authorized logged in user.
        /// Documentation https://developers.google.com/partners/v2/reference/leads/list
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Partners service.</param>
        /// <param name="optional">Optional paramaters.</param>
        /// <returns>ListLeadsResponseResponse</returns>
        public static ListLeadsResponse List(PartnersService service, LeadsListOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }

                // Building the initial request.
                var request = service.Leads.List();

                // Applying optional parameters to the request.
                request = (LeadsResource.ListRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return(request.Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request Leads.List failed.", ex);
            }
        }
Esempio n. 22
0
        public async Task UnapproveAsyncShouldWorkCorrectlyUsingMoq()
        {
            var repository = new Mock <IDeletableEntityRepository <Partner> >();

            var store       = new Mock <IUserStore <ApplicationUser> >();
            var userManager = new Mock <UserManager <ApplicationUser> >(store.Object, null, null, null, null, null, null, null, null);

            var roles = new List <ApplicationRole>
            {
                new ApplicationRole {
                    Id = "1", Name = "Admin"
                },
                new ApplicationRole {
                    Id = "2", Name = "Partner"
                },
            };

            var managers = new List <ApplicationUser>
            {
                new ApplicationUser {
                    Id = "TestManagerId1", Email = "TestEmail1", PartnerId = 1
                },
                new ApplicationUser {
                    Id = "TestManagerId2", Email = "TestEmail2"
                },
            };

            managers.FirstOrDefault().Roles.Add(new IdentityUserRole <string> {
                RoleId = "1"
            });

            var partners = new List <Partner>
            {
                new Partner {
                    Id = 1, IsApproved = true, Manager = managers.FirstOrDefault(), ManagerId = managers.FirstOrDefault().Id, CompanyName = "TestCompany", CompanyUrl = "TestUrl"
                },
                new Partner {
                    Id = 2, IsApproved = true
                },
            };

            repository.Setup(r => r.AllAsNoTracking()).Returns(partners.AsQueryable());
            repository.Setup(r => r.Update(It.IsAny <Partner>())).Callback((Partner item) =>
            {
                var foundPartner        = partners.FirstOrDefault(x => x.Id == item.Id);
                foundPartner.IsApproved = item.IsApproved;
                foundPartner.ApprovedOn = item.ApprovedOn;
            });
            repository.Setup(r => r.SaveChangesAsync()).Verifiable();

            userManager.Setup(r => r.FindByIdAsync(It.IsAny <string>()))
            .Returns(async(string userId) => await Task.FromResult <ApplicationUser>(managers.FirstOrDefault(x => x.Id == userId)));
            userManager.Setup(r => r.RemoveFromRoleAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()))
            .Returns(async(ApplicationUser user, string roleName) =>
            {
                var foundManager = managers.FirstOrDefault(x => x.Id == user.Id);
                var foundRole    = roles.FirstOrDefault(x => x.Name == roleName);
                foundManager.Roles.Remove(foundManager.Roles.FirstOrDefault(x => x.RoleId == "1"));
                return(await Task.FromResult(IdentityResult.Success));
            });

            var service = new PartnersService(repository.Object, userManager.Object, null);

            Assert.True(await service.UnapproveAsync(1));
            Assert.False(partners.FirstOrDefault(x => x.Id == 1).IsApproved);
            Assert.Empty(managers.FirstOrDefault(x => x.Id == "TestManagerId1").Roles);

            repository.Verify(x => x.AllAsNoTracking(), Times.Once);
            repository.Verify(x => x.Update(It.IsAny <Partner>()), Times.Once);
            repository.Verify(x => x.SaveChangesAsync());

            userManager.Verify(x => x.FindByIdAsync(It.IsAny <string>()), Times.Once);
            userManager.Verify(x => x.RemoveFromRoleAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()), Times.Once);
        }