Beispiel #1
0
        public void LastIpLookedUpTest()
        {
            var target = new PrivateAccessor(new ConcreteService());
            var result = target.CallMethod("LogUserInfo", "123.123.123.123");

            Assert.AreEqual("123.123.123.123", target.GetField("_lastIpLookedUp"));
        }
        public void SqlTraceIsSentToAggregator()
        {
            var commandText      = "Select * from Table1";
            var duration         = TimeSpan.FromMilliseconds(500);
            var datastoreSegment = TestTransactions.BuildSegment(null, DatastoreVendor.MSSQL, "Table1", commandText, new TimeSpan(), duration, null, null, null, "myhost", "myport", "mydatabase");
            var segments         = Enumerable.Empty <Segment>();

            segments = segments.Concat(new[] { datastoreSegment });

            var transaction     = TestTransactions.CreateTestTransactionWithSegments(segments);
            var transactionName = _transactionMetricNameMaker.GetTransactionMetricName(transaction.TransactionName);

            Mock.Arrange(() => _configuration.SlowSqlEnabled).Returns(true);
            Mock.Arrange(() => _configuration.SqlExplainPlanThreshold).Returns(TimeSpan.FromMilliseconds(100));

            var privateTransactionTransformer = new PrivateAccessor(_transactionTransformer);
            var args = new object[] { transaction, transactionName };

            privateTransactionTransformer.CallMethod("Transform", args);

            var privateSqlTraceStatsInAggregator = new PrivateAccessor(_sqlTraceAggregator).GetField("_sqlTraceStats");
            var privateSqlTraceStatsCollection   = (SqlTraceStatsCollection)privateSqlTraceStatsInAggregator;
            var tracesCount = ((IDictionary <long, SqlTraceWireModel>)privateSqlTraceStatsCollection.Collection).Count;

            Assert.AreEqual(tracesCount, 1);
        }
Beispiel #3
0
        public void TestPrivateMethodGetTotalAmount()
        {
            //Arrange
            using (JMRadForm form = new JMRadForm())
            {
                List <Order> orders = form.GetData();
                form.Grid.DataSource = orders;

                //Create a mocked instance of your class under test
                var orderMock = Mock.Create <Order>();
                //Arrange your expectations
                Mock.NonPublic.Arrange <float>(orderMock, "GetTotalAmount").Returns(5f);

                // Act
                //Create new PrivateAccessor with the mocked instance as an argument
                var inst = new PrivateAccessor(orderMock);

                //Call the non-public method by giving its exact name
                var actual = inst.CallMethod("GetTotalAmount");

                // Assert
                //Finally, you can assert against its expected return value
                Assert.AreEqual(5f, actual);
            }
        }
Beispiel #4
0
        public void TestLogUserInfo()
        {
            var target = new PrivateAccessor(new ConcreteService());
            var result = target.CallMethod("LogUserInfo", "172.217.1.174");

            Assert.IsInstanceOfType(result, typeof(bool));
            Assert.IsTrue((bool)result);
        }
Beispiel #5
0
        public void PrivateAccessor_ShouldCallPrivateMethod()
        {
            // ACT
            // Wrapping the instance holding the private method.
            var inst = new PrivateAccessor(new ClassWithNonPublicMembers());
            // Calling the non-public method by giving its exact name.
            var actual = inst.CallMethod("MePrivate");

            // ASSERT
            Assert.AreEqual(1000, actual);
        }
Beispiel #6
0
        public void TestBadIpAddress()
        {
            var target = new PrivateAccessor(new ConcreteService());

            try
            {
                var result = target.CallMethod("LogUserInfo", "");
                Assert.Fail("Should have failed");
            }
            catch (Exception ex)
            {
                Assert.AreEqual(ex.Message, "The call to ipinfo faied");
            }
        }
        public void SqlTracesCollectedMetricIsAccurate()
        {
            var generatedMetrics = new MetricStatsDictionary <string, MetricDataWireModel>();

            Mock.Arrange(() => _metricAggregator.Collect(Arg.IsAny <TransactionMetricStatsCollection>())).DoInstead <TransactionMetricStatsCollection>(txStats => generatedMetrics = txStats.GetUnscopedForTesting());

            Mock.Arrange(() => _configuration.SlowSqlEnabled).Returns(true);
            Mock.Arrange(() => _configuration.SqlExplainPlanThreshold).Returns(TimeSpan.FromMilliseconds(100));
            var segments = new List <Segment>();

            int nextId         = 0;
            var txSegmentState = Mock.Create <ITransactionSegmentState>();

            Mock.Arrange(() => txSegmentState.AttribDefs).Returns(() => new AttributeDefinitions(new AttributeFilter(new AttributeFilter.Settings())));
            Mock.Arrange(() => txSegmentState.ParentSegmentId()).Returns(() =>
                                                                         nextId == 0 ? (int?)null : nextId);
            Mock.Arrange(() => txSegmentState.CallStackPush(Arg.IsAny <Segment>())).Returns(() => ++ nextId);

            var commandText       = "Select * from Table1";
            var duration          = TimeSpan.FromMilliseconds(500);
            var datastoreSegment1 = TestTransactions.BuildSegment(txSegmentState, DatastoreVendor.MSSQL, "Table1", commandText, new TimeSpan(), duration, null, null, null, "myhost", "myport", "mydatabase");

            segments.Add(datastoreSegment1);

            commandText = "Select * from Table2";
            duration    = TimeSpan.FromMilliseconds(1000);
            var datastoreSegment2 = TestTransactions.BuildSegment(txSegmentState, DatastoreVendor.MSSQL, "Table1", commandText, new TimeSpan(), duration, null, null, null, "myhost", "myport", "mydatabase");

            segments.Add(datastoreSegment2);

            commandText = "Select * from Table2";
            duration    = TimeSpan.FromMilliseconds(900);
            var datastoreSegment3 = TestTransactions.BuildSegment(txSegmentState, DatastoreVendor.MSSQL, "Table1", commandText, new TimeSpan(), duration, null, null, null, "myhost", "myport", "mydatabase");

            segments.Add(datastoreSegment3);

            var transaction     = TestTransactions.CreateTestTransactionWithSegments(segments);
            var transactionName = _transactionMetricNameMaker.GetTransactionMetricName(transaction.TransactionName);

            var privateTransactionTransformer = new PrivateAccessor(_transactionTransformer);
            var args = new object[] { transaction, transactionName };

            privateTransactionTransformer.CallMethod("Transform", args);

            string sqlTracesCollectedMetricName = "Supportability/SqlTraces/TotalSqlTracesCollected";

            Assert.IsTrue(generatedMetrics.TryGetValue(sqlTracesCollectedMetricName, out MetricDataWireModel data));
            Assert.AreEqual(3, data.Value0);
        }
Beispiel #8
0
        public void GetNumberOfPeople_TotalPeopleGreaterThenNotInterest_Positive()
        {
            //Arrange
            IManual manual = new Mock <IManual>().Object;
            Order   order  = new Order {
                NumberOfPeople = 100, NumberOfPeopleNotInterest = 50
            };
            var target = new PrivateAccessor(new JuiceBuilder(manual));

            //Act
            var original = target.CallMethod("GetNumberOfPeople", order);

            //Assert
            Assert.AreEqual(original, 50);
        }
Beispiel #9
0
        public void When_harvest_occurs_default_reservoir_size_is_reported_accurately()
        {
            const uint expectedReservoirSize = 100;

            _errorEventAggregator.Collect(new ErrorEventWireModel(_attribValues, false, 0.1f));
            _errorEventAggregator.Collect(new ErrorEventWireModel(_attribValues, false, 0.2f));

            // Access the private collection of events to get the number of add attempts.
            var privateAccessor     = new PrivateAccessor(_errorEventAggregator);
            var actualReservoirSize = privateAccessor.CallMethod("GetReservoirSize");

            _harvestAction();

            Assert.AreEqual(expectedReservoirSize, actualReservoirSize);
        }
        public void KeyTest()
        {
            var log  = Mock.Create <ILogger>();
            var http = Mock.Create <IHttpService>();
            var file = Mock.Create <IFileService>();

            Mock.Arrange(() => file.ReadAllLines(Arg.AnyString))
            .Returns(new string[] { "key" })
            .OccursOnce();

            var target = new PrivateAccessor(new LocationService(http, file, log));

            var result = target.CallMethod("Key");

            Assert.IsInstanceOfType(result, typeof(string));
            Assert.AreEqual("key", result);
        }
        public void InvalidCoordinatesTest()
        {
            var log  = Mock.Create <ILogger>();
            var http = Mock.Create <IHttpService>();
            var file = Mock.Create <IFileService>();

            Mock.Arrange(() => file.ReadAllLines(Arg.AnyString))
            .Returns(new string[] { "key" })
            .OccursOnce();

            var target = new PrivateAccessor(new LocationService(http, file, log));

            var result = target.CallMethod("ValidCoordinates", 200, 200);

            Assert.IsInstanceOfType(result, typeof(bool));
            Assert.IsFalse((bool)result);
        }
        public void ShouldCallArrangedPrivateMethod()
        {
            // ARRANGE
            // Create a mocked instance of your class under test with original behavior.
            //  You can also use original instance object and perform partial mocking.
            var mockedClass = Mock.Create <ClassWithNonPublicMembers>(Behavior.CallOriginal);

            // Arranging: When the private MePrivate() is called from the mockedClass instance, it should return 5.
            Mock.NonPublic.Arrange <int>(mockedClass, "MePrivate").Returns(5);

            // ACT
            // Wrapping the mocked instance with a private accessor.
            var inst = new PrivateAccessor(mockedClass);
            // Calling the non-public method by giving its exact name.
            var actual = inst.CallMethod("MePrivate");

            // ASSERT - No matter the mock is wrapped, it should keep its arrangements.
            Assert.AreEqual(5, actual);
        }