Пример #1
0
        public void AsAtDateFilterCustom_Success()
        {
            var filter = new Filter(null, DateTime.UtcNow.AddDays(-1), null, null, null, null, null, null, null, null, null, null,
                                    null, null, null, null, null, null, null, true);

            filter.Validate(_serviceExceptionHandler);
        }
Пример #2
0
        public void TemperatureRangeFilter_OutOfRange()
        {
            var filter = new Filter(temperatureRangeMin: -10.0, temperatureRangeMax: 320.0);
            var ex     = Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            Assert.True(ex.GetContent.Contains(":2076"), "wrong code for temperature out of range");
        }
Пример #3
0
        public void PassCountRangeFilter_MissingMax()
        {
            var filter = new Filter(passCountRangeMin: 5);
            var ex     = Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            Assert.True(ex.GetContent.Contains(":2073"), "wrong code for missing max pass count");
        }
Пример #4
0
        public void TemperatureRangeFilter_InvalidRange()
        {
            var filter = new Filter(temperatureRangeMin: 255.0, temperatureRangeMax: 127.5);
            var ex     = Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            Assert.True(ex.GetContent.Contains(":2074"), "wrong code for invalid temperature range");
        }
Пример #5
0
        public void PassCountRangeFilter_OutOfRange()
        {
            var filter = new Filter(passCountRangeMin: 900, passCountRangeMax: 1100);
            var ex     = Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            Assert.True(ex.GetContent.Contains(":2077"), "wrong code for pass count out of range");
        }
Пример #6
0
        public void HydrateJsonStringWithPolygonTest()
        {
            var filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                    ElevationType.Lowest, true, null, true, 1);

            // now add the polygon
            var boundaryUid       = Guid.NewGuid().ToString();
            var boundaryName      = "myBoundaryName";
            var newBoundaryPoints = new List <VSS.MasterData.Models.Models.WGSPoint>
            {
                new WGSPoint(1, 170),
                new WGSPoint(6, 160),
                new WGSPoint(8, 150),
                new WGSPoint(1, 170)
            };
            var boundaryType = GeofenceType.Filter;

            filter.AddBoundary(boundaryUid, boundaryName, newBoundaryPoints, boundaryType);
            var jsonString = JsonConvert.SerializeObject(filter);

            Assert.True(jsonString != string.Empty);

            filter = JsonConvert.DeserializeObject <Filter>(jsonString);
            filter.Validate(_serviceExceptionHandler);
            Assert.Equal(boundaryName, filter.PolygonName);
            Assert.Equal(boundaryUid, filter.PolygonUid);
            Assert.Equal(4, filter.PolygonLL.Count);
            Assert.Equal(newBoundaryPoints[2].Lat, filter.PolygonLL[2].Lat);
            Assert.Equal(boundaryType, filter.PolygonType);
        }
Пример #7
0
        public void TemperatureRangeFilter_MissingMax()
        {
            var filter = new Filter(temperatureRangeMin: 100.0);
            var ex     = Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            Assert.True(ex.GetContent.Contains(":2072"), "wrong code for missing max temperature");
        }
Пример #8
0
        public void PassCountRangeFilter_InvalidRange()
        {
            var filter = new Filter(passCountRangeMin: 25, passCountRangeMax: 15);
            var ex     = Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            Assert.True(ex.GetContent.Contains(":2075"), "wrong code for invalid pass count range");
        }
Пример #9
0
        public void ValidateJsonStringTest()
        {
            var filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                    ElevationType.Lowest, true, _polygonLL, true, 1, _boundaryUid, _boundaryName);
            var jsonString = JsonConvert.SerializeObject(filter);

            Assert.True(jsonString != string.Empty);

            filter = JsonConvert.DeserializeObject <Filter>(jsonString);
            filter.Validate(_serviceExceptionHandler);
        }
Пример #10
0
        public void CanCreateFilterTest()
        {
            // Empty filter...
            var filter = new Filter();

            Assert.True(_validator.TryValidate(filter, out _));

            // Complete filter...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                ElevationType.Lowest, true, _polygonLL, true, 1);
            Assert.True(_validator.TryValidate(filter, out _));
        }
Пример #11
0
        public void ValidateSuccessTest()
        {
            // All properties' values are valid...
            var filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                    ElevationType.Lowest, true, _polygonLL, true, 1, _boundaryUid, _boundaryName);

            filter.Validate(_serviceExceptionHandler);

            // Date range is not provided...
            filter = new Filter(null, null, new Guid().ToString(), "designName", _machines, 123, ElevationType.Lowest, true, null,
                                true, 1);
            filter.Validate(_serviceExceptionHandler);

            // Design UID is not provided...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), null, "designName", _machines, 123, ElevationType.Lowest, true, null,
                                true, 1);
            filter.Validate(_serviceExceptionHandler);

            // Machines' list is not provided...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", null, 123, ElevationType.Lowest,
                                true, null, true, 1);
            filter.Validate(_serviceExceptionHandler);

            // Machine's design name is not provided...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, null,
                                ElevationType.Lowest, true, null, true, 1);
            filter.Validate(_serviceExceptionHandler);

            // Elevation type is not provided...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                ElevationType.Lowest, true, null, true, 1);
            filter.Validate(_serviceExceptionHandler);

            // Vibration state is not provided...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                ElevationType.Lowest, null, null, true, 1);
            filter.Validate(_serviceExceptionHandler);

            // Forward direction flag is not provided...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                ElevationType.Lowest, true, null, null, 1);
            filter.Validate(_serviceExceptionHandler);

            // Layer number is not provided...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                ElevationType.Lowest, true, null, true, null);
            filter.Validate(_serviceExceptionHandler);
        }
Пример #12
0
        /// <summary>
        /// Create the filter and convert it to json
        /// </summary>
        /// <param name="elevation">ElevationType</param>
        /// <param name="vibestate">true or false</param>
        /// <param name="forward">true or false</param>
        /// <param name="layerNo">layer number</param>
        /// <returns>complete filter in json format</returns>
        private static string CreateTestFilter(ElevationType?elevation = null, bool?vibestate = null, bool?forward = null,
                                               int?layerNo             = null)
        {
            var startUtc   = DateTime.Now.AddMonths(-6).ToUniversalTime();
            var endUtc     = DateTime.Now.AddMonths(+6).ToUniversalTime();
            var listPoints = new List <WGSPoint>
            {
                new WGSPoint(38.8361907402694, -121.349260032177),
                new WGSPoint(38.8361656688414, -121.349217116833),
                new WGSPoint(38.8387897637231, -121.347275197506),
                new WGSPoint(38.8387145521594, -121.347189366818)
            };
            var filter = new VSS.Productivity3D.Filter.Abstractions.Models.Filter(startUtc, endUtc, Guid.NewGuid().ToString(), "DesignName", null, 123,
                                                                                  elevation, vibestate, listPoints, forward, layerNo, onMachineDesignName: "MachineDesign Name");

            return(JsonConvert.SerializeObject(filter));
        }
Пример #13
0
        public void CanCompareFiltersNonEqual()
        {
            var filter1 = new Filter(DateTime.MinValue, DateTime.MaxValue, Guid.NewGuid().ToString(), "designName",
                                     new List <MachineDetails> {
                new MachineDetails(1, "test", true)
            }, 15,
                                     ElevationType.Lowest, true, new List <WGSPoint>(), false, -1, null, "123");
            var hash1   = filter1.GetHashCode();
            var filter2 = new Filter(DateTime.MinValue, DateTime.MaxValue, Guid.NewGuid().ToString(), "designName",
                                     new List <MachineDetails> {
                new MachineDetails(1, "test2", true)
            }, 15,
                                     ElevationType.Lowest, true, new List <WGSPoint>(), false, -1, null, "123");
            var hash2 = filter2.GetHashCode();

            Assert.True(filter1 != filter2);
            Assert.NotEqual(hash1, hash2);
        }
Пример #14
0
        public void IncludeAlignmentFailure_InvalidRightOffset()
        {
            string alignmentUid = Guid.NewGuid().ToString();
            double?startStation = 50;
            double?endStation   = 65;
            double?leftOffset   = 0;
            double?rightOffset  = null;
            var    filter       = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                             ElevationType.Lowest, true, null, true, 1, null, null,
                                             alignmentUid, null, startStation, endStation, leftOffset, rightOffset);

            var jsonString = JsonConvert.SerializeObject(filter);

            Assert.True(jsonString != string.Empty);

            filter = JsonConvert.DeserializeObject <Filter>(jsonString);
            var ex = Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            Assert.True(ex.GetContent.Contains(":2066"), "wrong code for invalid Offset.");
        }
Пример #15
0
        public void IncludeAlignmentSuccess_WithNegativeOffset()
        {
            var    alignmentUid = Guid.NewGuid().ToString();
            double?startStation = 10.0;
            double?endStation   = 50.6;
            double?leftOffset   = -20;
            double?rightOffset  = 25;
            var    filter       = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                             ElevationType.Lowest, true, null, true, 1, null, null,
                                             alignmentUid, null, startStation, endStation, leftOffset, rightOffset);

            var jsonString = JsonConvert.SerializeObject(filter);

            Assert.True(jsonString != string.Empty);

            filter = JsonConvert.DeserializeObject <Filter>(jsonString);
            filter.Validate(_serviceExceptionHandler);
            Assert.Equal(alignmentUid, filter.AlignmentUid);
            Assert.Equal(startStation, filter.StartStation);
            Assert.Equal(endStation, filter.EndStation);
            Assert.Equal(leftOffset, filter.LeftOffset);
            Assert.Equal(rightOffset, filter.RightOffset);
        }
Пример #16
0
        public void ValidateFailureTest()
        {
            // Start UTC date is not provided...
            var filter = new Filter(null, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                    ElevationType.Lowest, true, _polygonLL, true, 1);

            Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            // End UTC date is not provided...
            filter = new Filter(_utcNow, null, new Guid().ToString(), "designName", _machines, 123, ElevationType.Lowest, true,
                                _polygonLL, true, 1);
            Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            // Invalid design UID's Guid is provided...
            filter = new Filter(_utcNow, _utcNow.AddDays(10), INVALID_GUID, "designName", _machines, 123, ElevationType.Lowest,
                                true, _polygonLL, true, 1);
            Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));

            // The provided polygon's boundary has less than 3 points...
            _polygonLL.RemoveAt(_polygonLL.Count - 1);
            filter = new Filter(_utcNow, _utcNow.AddDays(10), new Guid().ToString(), "designName", _machines, 123,
                                ElevationType.Lowest, true, _polygonLL, true, 1);
            Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));
        }
Пример #17
0
        public void AsAtDateFilterFailure_MissingEndUtc()
        {
            var filter = new Filter(asAtDate: true);

            Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));
        }
Пример #18
0
        public void PassCountRangeFilterSuccess()
        {
            var filter = new Filter(passCountRangeMin: 5, passCountRangeMax: 10);

            filter.Validate(_serviceExceptionHandler);
        }
Пример #19
0
        public void AsAtDateFilterFailure_MissingStartUtc()
        {
            var filter = new Filter(endUtc: DateTime.UtcNow.AddDays(-1), asAtDate: false);

            Assert.Throws <ServiceException>(() => filter.Validate(_serviceExceptionHandler));
        }
Пример #20
0
        public void TemperatureRangeFilterSuccess()
        {
            var filter = new Filter(temperatureRangeMin: 100.0, temperatureRangeMax: 120.5);

            filter.Validate(_serviceExceptionHandler);
        }
Пример #21
0
        public void AutomaticsFilterSuccess()
        {
            var filter = new Filter(automaticsType: AutomaticsType.Manual);

            filter.Validate(_serviceExceptionHandler);
        }