예제 #1
0
        public static async Task <List <KeyValuePair <string, Guid> > > SeedInitialPrograms(TelimenaPortalContext portalContext, TelimenaTelemetryContext telemetryContext,
                                                                                            int prgCount, string getName, string[] userNames, string devName = "SomeDeveloper", string devEmail = "*****@*****.**", [CallerMemberName] string caller = "")
        {
            Mock <HttpRequestContext> requestContext =
                await SetupUserIntoRequestContext(portalContext, devName, devEmail).ConfigureAwait(false);

            RegisterProgramUnitOfWork unit = new RegisterProgramUnitOfWork(telemetryContext, portalContext);

            RegisterProgramController programsController =
                new RegisterProgramController(unit)
            {
                RequestContext = requestContext.Object
            };


            List <KeyValuePair <string, Guid> > list = await SeedInitialPrograms(programsController, prgCount
                                                                                 , GetName(getName, caller), userNames.Select(x => GetName(x, caller)).ToList()).ConfigureAwait(false);

            foreach (string userName in userNames)
            {
                telemetryContext.AppUsers.Add(new ClientAppUser()
                {
                    UserIdentifier = GetName(userName, caller)
                });
            }

            telemetryContext.SaveChanges();
            return(list);
        }
        public async Task TestRegisterApp()
        {
            Mock <HttpRequestContext> requestContext = await Helpers.SetupUserIntoRequestContext(this.PortalContext, "testDevTeam", "testDev@Email",
                                                                                                 nameof(TestRegisterApp)).ConfigureAwait(false);

            RegisterProgramUnitOfWork unit = new RegisterProgramUnitOfWork(this.TelemetryContext, this.PortalContext);

            RegisterProgramController programsController = new RegisterProgramController(unit)
            {
                RequestContext = requestContext.Object
            };

            RegisterProgramRequest register = new RegisterProgramRequest
            {
                Name                    = Helpers.GetName("MyTestApp"),
                TelemetryKey            = Guid.NewGuid(),
                PrimaryAssemblyFileName = "MyTestApp.dll"
            };
            RegisterProgramResponse response = await programsController.Register(register).ConfigureAwait(false);

            if (response.Exception != null)
            {
                throw response.Exception;
            }

            var prg  = this.PortalContext.Programs.Single(x => x.TelemetryKey == response.TelemetryKey);
            var root = this.TelemetryContext.TelemetryRootObjects.Single(x => x.TelemetryKey == prg.TelemetryKey);

            Assert.AreEqual(prg.Id, root.ProgramId);
            Assert.AreEqual(prg.TelemetryKey, root.TelemetryKey);

            Assert.AreEqual(Helpers.GetName("MyTestApp"), prg.Name);
            Assert.AreEqual(Helpers.GetName("testDevTeam"), prg.DeveloperTeam.Name);
            Assert.AreEqual(Helpers.GetName("testDev@Email"), prg.DeveloperTeam.MainEmail);
            Assert.AreEqual("MyTestApp.dll", prg.PrimaryAssembly.Name + prg.PrimaryAssembly.Extension);
        }