예제 #1
0
        public void VerifyBracketsAreBalanced_WhenSingleBracket_ShouldReturnFail(string input)
        {
            //---------------Arrange-------------------
            var expected = "Fail";
            var parser   = new BracketsParser();
            //---------------Act ----------------------
            var result = parser.VerifyBracketsAreBalanced(input);

            //---------------Assert -----------------------
            Assert.AreEqual(expected, result);
        }
예제 #2
0
        public void VerifyBracketsAreBalanced_WhenDoublyNestedSetOfBalancedBrackets_ShouldReturnOk()
        {
            //---------------Arrange-------------------
            var input    = "[[[][]]]";
            var expected = "Ok";
            var parser   = new BracketsParser();
            //---------------Act ----------------------
            var result = parser.VerifyBracketsAreBalanced(input);

            //---------------Assert -----------------------
            Assert.AreEqual(expected, result);
        }
예제 #3
0
        public void VerifyBracketsAreBalanced_WhenEmptyString_ShouldReturnOk()
        {
            //---------------Arrange-------------------
            var input    = string.Empty;
            var expected = "Ok";
            var parser   = new BracketsParser();
            //---------------Act ----------------------
            var result = parser.VerifyBracketsAreBalanced(input);

            //---------------Assert -----------------------
            Assert.AreEqual(expected, result);
        }
예제 #4
0
        public void VerifyBracketsAreBalanced_WhenUnclosedNestedBrackets_ShouldReturnFail()
        {
            //---------------Arrange-------------------
            var input    = "[[]";
            var expected = "Fail";
            var parser   = new BracketsParser();
            //---------------Act ----------------------
            var result = parser.VerifyBracketsAreBalanced(input);

            //---------------Assert -----------------------
            Assert.AreEqual(expected, result);
        }
예제 #5
0
        private EventLogItem ParseEventLogItemData(StringBuilder eventLogItemData, long endPosition,
                                                   CancellationToken cancellationToken = default)
        {
            var parsedData = BracketsParser.ParseBlock(eventLogItemData);

            var eventLogItem = new EventLogItem
            {
                TransactionStatus = GetTransactionPresentation(parsedData[1]),
                FileName          = LgpFileName,
                EndPosition       = endPosition,
                LgfEndPosition    = _lgfReader.GetPosition()
            };

            try
            {
                eventLogItem.DateTime = _timeZone.ToUtc(DateTime.ParseExact(parsedData[0], "yyyyMMddHHmmss",
                                                                            CultureInfo.InvariantCulture));
            }
            catch
            {
                eventLogItem.DateTime = DateTime.MinValue;
            }

            var transactionData = parsedData[2];

            eventLogItem.TransactionNumber = Convert.ToInt64(transactionData[1], 16);

            var transactionDate = new DateTime().AddSeconds(Convert.ToInt64(transactionData[0], 16) / 10000);

            eventLogItem.TransactionDateTime = transactionDate == DateTime.MinValue
                ? transactionDate
                : _timeZone.ToUtc(transactionDate);

            var(value, uuid)      = _lgfReader.GetReferencedObjectValue(ObjectType.Users, parsedData[3], cancellationToken);
            eventLogItem.UserUuid = uuid;
            eventLogItem.User     = value;

            eventLogItem.Computer = _lgfReader.GetObjectValue(ObjectType.Computers, parsedData[4], cancellationToken);

            var application = _lgfReader.GetObjectValue(ObjectType.Applications, parsedData[5], cancellationToken);

            eventLogItem.Application = GetApplicationPresentation(application);

            eventLogItem.Connection = parsedData[6];

            var ev = _lgfReader.GetObjectValue(ObjectType.Events, parsedData[7], cancellationToken);

            eventLogItem.Event = GetEventPresentation(ev);

            var severity = (string)parsedData[8];

            eventLogItem.Severity = GetSeverityPresentation(severity);

            eventLogItem.Comment = parsedData[9];

            (value, uuid)             = _lgfReader.GetReferencedObjectValue(ObjectType.Metadata, parsedData[10], cancellationToken);
            eventLogItem.MetadataUuid = uuid;
            eventLogItem.Metadata     = value;

            eventLogItem.Data             = GetData(parsedData[11]).Trim();
            eventLogItem.DataPresentation = parsedData[12];
            eventLogItem.Server           = _lgfReader.GetObjectValue(ObjectType.Servers, parsedData[13], cancellationToken);

            var mainPort = _lgfReader.GetObjectValue(ObjectType.MainPorts, parsedData[14], cancellationToken);

            if (mainPort != "")
            {
                eventLogItem.MainPort = int.Parse(mainPort);
            }

            var addPort = _lgfReader.GetObjectValue(ObjectType.AddPorts, parsedData[15], cancellationToken);

            if (addPort != "")
            {
                eventLogItem.AddPort = int.Parse(addPort);
            }

            eventLogItem.Session = parsedData[16];

            return(eventLogItem);
        }