示例#1
0
        static void Main(string[] args)
        {
            if (!SharedUtils.PrintVersionsAndCheckArgs(args, typeof(EmbeddedAssemblyTestAppProgram)))
            {
                return;
            }



            var arguments = SharedUtils.LoadArguments(args);

            TelimenaStartupInfo si = new TelimenaStartupInfo(arguments.TelemetryKey)
            {
                ProgramInfo = arguments.ProgramInfo
                ,
                DeliveryInterval = TimeSpan.FromSeconds(3)
            };

            //this is to test that telimena works OK if used as embedded assembly
            var teli = Telimena.Construct(si);

            teli.Track.Event("HelloFromEmbeddedTelimenaClientApp");
            teli.Track.SendAllDataNow();

            Console.WriteLine("Ended with no errors");
        }
示例#2
0
        private void setAppButton_Click(object sender, EventArgs e)
        {
            var si = new TelimenaStartupInfo(Guid.Empty, telemetryApiBaseUrl: new Uri(this.apiUrlTextBox.Text))
            {
                InstrumentationKey = "1a14064b-d326-4ce3-939e-8cba4d08c255"
            };

            if (!string.IsNullOrEmpty(this.userNameTextBox.Text))
            {
                si.UserInfo = new UserInfo {
                    UserIdentifier = this.userNameTextBox.Text
                };
            }



            if (Guid.TryParse(this.apiKeyTextBox.Text, out Guid key))
            {
                si.TelemetryKey = key;
                Properties.Settings.Default.telemetryKey = this.apiKeyTextBox.Text;
                Properties.Settings.Default.Save();
                this.Telimena = TelimenaFactory.Construct(si) as Telimena;
                ;
            }
            else
            {
                MessageBox.Show("Api key missing, cannot run teli");
            }
            Properties.Settings.Default.baseUri = this.apiUrlTextBox.Text;
            Properties.Settings.Default.Save();
        }
示例#3
0
        public static ITelimena GetCrackedTelimena(ICollection <ITelemetry> sentTelemetry, Guid telemetryKey, string userName, bool excludeStartingEvent = false)
        {
            var startupInfo = new TelimenaStartupInfo(telemetryKey, Helpers.TeliUri)
            {
                UserInfo = new TelimenaClient.Model.UserInfo()
                {
                    UserIdentifier = userName
                }
            };
            var telimena = TelimenaFactory.Construct(startupInfo);
            StubTelemetryChannel channel = new StubTelemetryChannel
            {
                OnSend = t =>
                {
                    EventTelemetry ev = t as EventTelemetry;
                    if (excludeStartingEvent && ev?.Name == "TelimenaSessionStarted")
                    {
                        return;
                    }
                    sentTelemetry.Add(t);
                }
            };
            TelemetryModule module = telimena.GetFieldValue <TelemetryModule>("telemetryModule");

            SetStaticFieldValue(module, "isSessionStartedEventSent", false);

            TelemetryClient client = module.GetPropertyValue <TelemetryClient>("TelemetryClient");
            var             config = client.GetPropertyValue <TelemetryConfiguration>("TelemetryConfiguration");

            config.SetPropertyValue("TelemetryChannel", channel);


            return(telimena);
        }
示例#4
0
        public void Test_InitializeRequestCreation()
        {
            TelimenaStartupInfo si = new TelimenaStartupInfo(this.testTelemetryKey, Helpers.TeliUri);

            Telimena telimena = TelimenaFactory.Construct(si) as Telimena;

            telimena.Properties.SuppressAllErrors = false;
            Assert.AreEqual(this.testTelemetryKey, telimena.Properties.TelemetryKey);
            Helpers.SetupMockHttpClient(telimena, Helpers.GetMockClient());
            this.Test_RegistrationFunc(telimena, () => telimena.Initialize().GetAwaiter().GetResult(), false);
        }
示例#5
0
        public void Test__NoInstrumentationKey_ClientCanBeBuiltOk()
        {
            var si      = new TelimenaStartupInfo(TestTelemetryKey);
            var props   = new TelimenaProperties(si);
            var builder = new TelemetryClientBuilder(props);
            var client  = builder.GetClient();

            Assert.AreEqual("", client.InstrumentationKey);
            var channel = client.TelemetryConfiguration.TelemetryChannel as TelimenaInMemoryChannel;

            Assert.IsNotNull(channel);
            var transmitter = channel.transmitter as TelimenaInMemoryTransmitter;

            Assert.IsNotNull(transmitter);
            Assert.That(() => transmitter.DeliverySettings.AppInsightsEndpointEnabled == false);
            Assert.That(() => transmitter.DeliverySettings.TelimenaTelemetryEndpoint.ToString(), Is.EqualTo(Telimena.DefaultApiUri + "api/v1/telemetry"));
            Assert.That(() => transmitter.SendingInterval == TimeSpan.FromSeconds(30));
        }
示例#6
0
        public void Test__InstrumentationKey_DeliverySettingsProvided()
        {
            var si = new TelimenaStartupInfo(TestTelemetryKey);

            si.DeliveryInterval   = TimeSpan.FromHours(667);
            si.InstrumentationKey = "yo, MSFT-o";
            var props   = new TelimenaProperties(si);
            var builder = new TelemetryClientBuilder(props);
            var client  = builder.GetClient();

            Assert.AreEqual("yo, MSFT-o", client.TelemetryConfiguration.InstrumentationKey);
            Assert.AreEqual("yo, MSFT-o", client.InstrumentationKey);
            var channel = client.TelemetryConfiguration.TelemetryChannel as TelimenaInMemoryChannel;

            Assert.IsNotNull(channel);
            var transmitter = channel.transmitter as TelimenaInMemoryTransmitter;

            Assert.IsNotNull(transmitter);
            Assert.That(() => transmitter.SendingInterval == TimeSpan.FromHours(667));
            Assert.That(() => transmitter.DeliverySettings.AppInsightsEndpointEnabled == true);
        }
示例#7
0
        static void Main(string[] args)
        {
            SharedUtils.ShowArgsRequiredMessage(args, typeof(EmbeddedAssemblyTestAppProgram), "EmbeddedAssemblyTestApp");

            var arguments = SharedUtils.LoadArguments(args);

            TelimenaStartupInfo si = new TelimenaStartupInfo(arguments.TelemetryKey, new Uri(arguments.ApiUrl))
            {
                ProgramInfo = arguments.ProgramInfo
                ,
                DeliveryInterval = TimeSpan.FromSeconds(3)
            };

            //this is to test that telimena works OK if used as embedded assembly
            var teli = Telimena.Construct(si);

            teli.Track.Event("HelloFromEmbeddedTelimenaClientApp");
            teli.Track.SendAllDataNow();

            Console.WriteLine("Ended with no errors");
        }
        public void Test_CheckForUpdates_Program_AndUpdater()
        {
            var si = new TelimenaStartupInfo(Guid.NewGuid(), Helpers.TeliUri)
            {
                SuppressAllErrors = false
            };

            ITelimena sut = TelimenaFactory.Construct(si);

            Assert.AreEqual("Telimena.Client.Tests", sut.Properties.StaticProgramInfo.PrimaryAssembly.Name);
            UpdateResponse latestVersionResponse = new UpdateResponse
            {
                UpdatePackages = new List <UpdatePackageData>
                {
                    new UpdatePackageData {
                        FileSizeBytes = 666, PublicId = Guid.NewGuid(), IsBeta = true, Version = "3.1.0.0"
                    }
                }
            };
            UpdateResponse updaterResponse = new UpdateResponse
            {
                UpdatePackages = new List <UpdatePackageData> {
                    new UpdatePackageData {
                        FileName = DefaultToolkitNames.UpdaterFileName, Version = "1.2"
                    }
                }
            };

            Helpers.SetupMockHttpClient(sut, this.GetMockClientForCheckForUpdates(sut.Properties.TelemetryKey, latestVersionResponse, updaterResponse));

            UpdateCheckResult response = sut.Update.CheckForUpdatesAsync().GetAwaiter().GetResult();

            Assert.IsTrue(response.IsUpdateAvailable);
            Assert.AreEqual(1, response.ProgramUpdatesToInstall.Count);
            Assert.IsNotNull(response.ProgramUpdatesToInstall.SingleOrDefault(x => x.Version == "3.1.0.0" && x.IsBeta));
            Assert.AreEqual("1.2", response.UpdaterUpdate.Version);
            Assert.IsNull(response.Exception);
        }
示例#9
0
        private ITelimena GetTelimena(Guid argumentsTelemetryKey)
        {
            ITelimena telimena;

            if (this.arguments.ProgramInfo != null)
            {
                TelimenaStartupInfo si = new TelimenaStartupInfo(argumentsTelemetryKey, new Uri(this.arguments.ApiUrl))
                {
                    ProgramInfo        = this.arguments.ProgramInfo
                    , DeliveryInterval = TimeSpan.FromSeconds(3)
                };
                telimena = TelimenaFactory.Construct(si);
            }
            else
            {
                telimena = TelimenaFactory.Construct(new TelimenaStartupInfo(argumentsTelemetryKey, new Uri(this.arguments.ApiUrl))
                {
                    DeliveryInterval = TimeSpan.FromSeconds(3)
                });
            }

            return(telimena);
        }
示例#10
0
        private ITelimena GetTelimena(Guid argumentsTelemetryKey)
        {
            ITelimena telimena;

            if (this.arguments.ProgramInfo != null)
            {
                TelimenaStartupInfo si = new TelimenaStartupInfo(argumentsTelemetryKey, new Uri(this.arguments.ApiUrl))
                {
                    ProgramInfo        = this.arguments.ProgramInfo
                    , DeliveryInterval = TimeSpan.FromSeconds(3)
                };
                telimena = TelimenaFactory.Construct(si);
            }
            else
            {
                telimena = TelimenaFactory.Construct(new TelimenaStartupInfo(argumentsTelemetryKey, new Uri(this.arguments.ApiUrl))
                {
                    DeliveryInterval = TimeSpan.FromSeconds(3)
                });
            }
            Console.WriteLine($"Initalized [{telimena?.GetType().FullName}].");

            return(telimena);
        }