Beispiel #1
0
 public static void VerifyDetailedOutput(LogsCmdletBase cmdlet, ref string selected)
 {
     // Calling with detailed output
     cmdlet.DetailedOutput = true;
     cmdlet.ExecuteCmdlet();
     Assert.Null(selected); // Incorrect nameOrTargetUri clause with detailed output on
 }
Beispiel #2
0
        public static void ExecuteVerifications(LogsCmdletBase cmdlet, Mock <IActivityLogsOperations> insinsightsEventOperationsMockightsClientMock, string requiredFieldName, string requiredFieldValue, ref ODataQuery <EventData> filter, ref string selected, DateTime startDate, AzureOperationResponse <IPage <EventData> > response)
        {
            // Calling without optional parameters
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: null);
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);
            Assert.True(string.Equals(PSEventDataNoDetails.SelectedFieldsForQuery, selected, StringComparison.OrdinalIgnoreCase), "Incorrect nameOrTargetUri clause without optional parameters");

            // Calling with only start date
            cmdlet.StartTime = startDate;
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: startDate);
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

            // Calling with only start and end date
            cmdlet.EndTime = startDate.AddSeconds(2);
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: startDate);
            VerifyEndDateInFilter(filter: filter, endDate: startDate.AddSeconds(2));
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

            // Calling with only caller
            cmdlet.EndTime = null;
            cmdlet.Caller  = Utilities.Caller;
            cmdlet.ExecuteCmdlet();

            VerifyCallerInCall(filter: filter, startDate: startDate, filedName: requiredFieldName, fieldValue: requiredFieldValue);

            // Calling with caller and status
            cmdlet.Status = Utilities.Status;
            cmdlet.ExecuteCmdlet();

            VerifyStatusAndCallerInCall(filter: filter, startDate: startDate, filedName: requiredFieldName, fieldValue: requiredFieldValue);

            VerifyDetailedOutput(cmdlet: cmdlet, selected: ref selected);
            VerifyContinuationToken(response: response, insinsightsEventOperationsMockightsClientMock: insinsightsEventOperationsMockightsClientMock, cmdlet: cmdlet);

            // Execute negative tests
            cmdlet.StartTime = DateTime.Now.AddSeconds(1);
            Assert.Throws <ArgumentException>(() => cmdlet.ExecuteCmdlet());

            cmdlet.StartTime = DateTime.Now.Subtract(TimeSpan.FromSeconds(20));
            cmdlet.EndTime   = DateTime.Now.Subtract(TimeSpan.FromSeconds(21));
            Assert.Throws <ArgumentException>(() => cmdlet.ExecuteCmdlet());

            cmdlet.StartTime = DateTime.Now.Subtract(TimeSpan.FromDays(30));
            cmdlet.EndTime   = DateTime.Now.Subtract(TimeSpan.FromDays(14));
            Assert.Throws <ArgumentException>(() => cmdlet.ExecuteCmdlet());
        }
        public static void ExecuteVerifications(LogsCmdletBase cmdlet, Mock <IActivityLogsOperations> insinsightsEventOperationsMockightsClientMock, string requiredFieldName, string requiredFieldValue, ref ODataQuery <EventData> filter, DateTime startDate, ref string nextLink)
        {
            // Calling without optional parameters
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: null);
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

            // Calling with only start date
            cmdlet.StartTime = startDate;
            nextLink         = null;
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: startDate);
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

            // Calling with only start and end date
            cmdlet.EndTime = startDate.AddSeconds(2);
            nextLink       = null;
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: startDate);
            VerifyEndDateInFilter(filter: filter, endDate: startDate.AddSeconds(2));
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

            // Calling with only caller
            cmdlet.EndTime = null;
            cmdlet.Caller  = Utilities.Caller;
            nextLink       = null;
            cmdlet.ExecuteCmdlet();

            VerifyCallerInCall(filter: filter, startDate: startDate, filedName: requiredFieldName, fieldValue: requiredFieldValue);

            // Calling with caller and status
            cmdlet.Status = Utilities.Status;
            nextLink      = null;
            cmdlet.ExecuteCmdlet();

            VerifyStatusAndCallerInCall(filter: filter, startDate: startDate, filedName: requiredFieldName, fieldValue: requiredFieldValue);
            VerifyDetailedOutput(cmdlet: cmdlet);

            // Calling with maxEvents (Note: # of returned objects is not testable here, only the call is being tested)
            var cmdLetLogs = cmdlet as GetAzureRmLogCommand;

            if (cmdLetLogs != null)
            {
                cmdLetLogs.Caller    = null;
                cmdLetLogs.Status    = null;
                nextLink             = null;
                cmdLetLogs.MaxRecord = 3;
                cmdLetLogs.ExecuteCmdlet();

                VerifyFilterIsUsable(filter: filter);
                VerifyStartDateInFilter(filter: filter, startDate: null);
                VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

                // Negative value
                nextLink             = null;
                cmdLetLogs.MaxRecord = -1;
                cmdLetLogs.ExecuteCmdlet();

                VerifyFilterIsUsable(filter: filter);
                VerifyStartDateInFilter(filter: filter, startDate: null);
                VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

                cmdLetLogs.MaxRecord = 0;
            }

            // Execute negative tests
            cmdlet.Caller    = null;
            cmdlet.Status    = null;
            cmdlet.StartTime = DateTime.Now.AddSeconds(1);
            nextLink         = null;
            Assert.Throws <ArgumentException>(() => cmdlet.ExecuteCmdlet());

            cmdlet.StartTime = DateTime.Now.Subtract(TimeSpan.FromSeconds(20));
            cmdlet.EndTime   = DateTime.Now.Subtract(TimeSpan.FromSeconds(21));
            nextLink         = null;
            Assert.Throws <ArgumentException>(() => cmdlet.ExecuteCmdlet());
        }
 public static void VerifyDetailedOutput(LogsCmdletBase cmdlet)
 {
     // Calling with detailed output
     cmdlet.DetailedOutput = true;
     cmdlet.ExecuteCmdlet();
 }
Beispiel #5
0
        public static void VerifyContinuationToken(AzureOperationResponse <IPage <EventData> > response, Mock <IActivityLogsOperations> insinsightsEventOperationsMockightsClientMock, LogsCmdletBase cmdlet)
        {
            // Make sure calls to Next work also
            string nextToken = ContinuationToken;

            insinsightsEventOperationsMockightsClientMock.Setup(f => f.ListNextWithHttpMessagesAsync(It.IsAny <string>(), It.IsAny <Dictionary <string, List <string> > >(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult <AzureOperationResponse <IPage <EventData> > >(response))
            .Callback((string n, Dictionary <string, List <string> > h, CancellationToken t) => nextToken = n);

            // Calling without optional parameters
            cmdlet.ExecuteCmdlet();
            Assert.Equal(Utilities.ContinuationToken, nextToken, ignoreCase: true, ignoreLineEndingDifferences: true, ignoreWhiteSpaceDifferences: true);
        }
        public static void ExecuteVerifications(LogsCmdletBase cmdlet, Mock <IActivityLogsOperations> insinsightsEventOperationsMockightsClientMock, string requiredFieldName, string requiredFieldValue, ref ODataQuery <EventData> filter, ref string selected, DateTime startDate, ref string nextLink)
        {
            // Calling without optional parameters
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: null);
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);
            Assert.True(string.Equals(PSEventDataNoDetails.SelectedFieldsForQuery, selected, StringComparison.OrdinalIgnoreCase), "Incorrect nameOrTargetUri clause without optional parameters");
            VerifyContinuationToken(nextLink: nextLink);

            // Calling with only start date
            cmdlet.StartTime = startDate;
            nextLink         = null;
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: startDate);
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);
            VerifyContinuationToken(nextLink: nextLink);

            // Calling with only start and end date
            cmdlet.EndTime = startDate.AddSeconds(2);
            nextLink       = null;
            cmdlet.ExecuteCmdlet();

            VerifyFilterIsUsable(filter: filter);
            VerifyStartDateInFilter(filter: filter, startDate: startDate);
            VerifyEndDateInFilter(filter: filter, endDate: startDate.AddSeconds(2));
            VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);
            VerifyContinuationToken(nextLink: nextLink);

            // Calling with only caller
            cmdlet.EndTime = null;
            cmdlet.Caller  = Utilities.Caller;
            nextLink       = null;
            cmdlet.ExecuteCmdlet();

            VerifyCallerInCall(filter: filter, startDate: startDate, filedName: requiredFieldName, fieldValue: requiredFieldValue);
            VerifyContinuationToken(nextLink: nextLink);

            // Calling with caller and status
            cmdlet.Status = Utilities.Status;
            nextLink      = null;
            cmdlet.ExecuteCmdlet();

            VerifyStatusAndCallerInCall(filter: filter, startDate: startDate, filedName: requiredFieldName, fieldValue: requiredFieldValue);
            VerifyDetailedOutput(cmdlet: cmdlet, selected: ref selected);
            VerifyContinuationToken(nextLink: nextLink);

            // Calling with maxEvents (Note: # of returned objects is not testable here, only the call is being tested)
            var cmdLetLogs = cmdlet as GetAzureRmLogCommand;

            if (cmdLetLogs != null)
            {
                cmdLetLogs.Caller    = null;
                cmdLetLogs.Status    = null;
                nextLink             = null;
                cmdLetLogs.MaxEvents = 3;
                cmdLetLogs.ExecuteCmdlet();

                VerifyFilterIsUsable(filter: filter);
                VerifyStartDateInFilter(filter: filter, startDate: null);
                VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

                // Negative value
                nextLink             = null;
                cmdLetLogs.MaxEvents = -1;
                cmdLetLogs.ExecuteCmdlet();

                VerifyFilterIsUsable(filter: filter);
                VerifyStartDateInFilter(filter: filter, startDate: null);
                VerifyConditionInFilter(filter: filter, field: requiredFieldName, value: requiredFieldValue);

                // The default should have been used, check continuation token
                VerifyContinuationToken(nextLink: nextLink);

                cmdLetLogs.MaxEvents = 0;
            }

            // Execute negative tests
            cmdlet.Caller    = null;
            cmdlet.Status    = null;
            cmdlet.StartTime = DateTime.Now.AddSeconds(1);
            nextLink         = null;
            Assert.Throws <ArgumentException>(() => cmdlet.ExecuteCmdlet());

            cmdlet.StartTime = DateTime.Now.Subtract(TimeSpan.FromSeconds(20));
            cmdlet.EndTime   = DateTime.Now.Subtract(TimeSpan.FromSeconds(21));
            nextLink         = null;
            Assert.Throws <ArgumentException>(() => cmdlet.ExecuteCmdlet());
        }