예제 #1
0
        public void ChannelDataChunkAdapter_AddToStore_Error_463_Nodes_With_Same_Index()
        {
            AddParents();

            var logData = _devKit.List <string>();

            _log.LogData = _devKit.List(new LogData()
            {
                Data = logData
            });

            logData.Add("13,13.1,");
            logData.Add("14,14.1,");
            logData.Add("15,15.1,");
            logData.Add("15,16.1,");
            logData.Add("17,17.1,");
            logData.Add("21,,21.2");
            logData.Add("22,,22.2");
            logData.Add("23,,23.2");
            _devKit.InitHeader(_log, LogIndexType.measureddepth);

            var response = _devKit.Add <LogList, Log>(_log);

            Assert.AreEqual((short)ErrorCodes.NodesWithSameIndex, response.Result);
        }
        public void ChannelDataChunkAdapter_UpdateInStore_ChunkMerge_With_File_Storage()
        {
            var channelDataChunkAdapter = DevKit.Container.Resolve <ChannelDataChunkAdapter>();

            // Ensure that our chunk size is large enough to contain all of the test data in one chunk
            WitsmlSettings.DepthRangeSize = 1000;
            WitsmlSettings.MaxDataLength  = 5000000;

            // Add the parent well and wellbore
            AddParents();

            // Add the log header
            DevKit.InitHeader(Log, LogIndexType.measureddepth);
            DevKit.AddAndAssert <LogList, Log>(Log);

            // Perform two updates that should merge the data into a single chunk
            Log.LogData[0].Data = new List <string>
            {
                "100,1,1",
                "200,2,2",
                "300,3,3",
                "400,4,4",
                "500,5,5"
            };
            DevKit.UpdateAndAssert(Log);

            Log.LogData[0].Data = new List <string>
            {
                "600,6,6",
                "700,7,7",
                "800,8,8",
                "900,9,9"
            };
            DevKit.UpdateAndAssert(Log);

            // Test there there is only one chunk
            var filter = channelDataChunkAdapter.BuildDataFilter(Log.GetUri(), null, new Range <double?>(null, null), true);
            var chunks = channelDataChunkAdapter.GetData(filter, true).ToList();

            Assert.AreEqual(1, chunks.Count, "More than one data chunk was found");

            // Add data that will push us into two chunks
            Log.LogData[0].Data = new List <string>
            {
                "1000,10,10",
                "1100,11,11"
            };
            DevKit.UpdateAndAssert(Log);

            // Test that we now have two chunks
            chunks = channelDataChunkAdapter.GetData(filter, true).ToList();
            Assert.AreEqual(2, chunks.Count, "More than two data chunks were found");
        }
예제 #3
0
        public void TestSetUp()
        {
            var url = "http://localhost/Witsml.Web/WitsmlStore.svc"; // IIS

            //var url = "http://localhost:5050/WitsmlStore.svc"; // TestApp
            _devKit = new DevKit141Aspect(TestContext, url);

            _well1 = new Well()
            {
                Name = _devKit.Name("Well 01"), TimeZone = _devKit.TimeZone, Uid = _devKit.Uid()
            };
            _well2 = new Well()
            {
                Name = _devKit.Name("Well 02"), TimeZone = _devKit.TimeZone
            };

            _wellbore1 = new Wellbore()
            {
                UidWell = _well1.Uid, NameWell = _well1.Name, Name = _devKit.Name("Wellbore 01-01"), Uid = _devKit.Uid()
            };
            _wellbore2 = new Wellbore()
            {
                UidWell = _well1.Uid, NameWell = _well1.Name, Name = _devKit.Name("Wellbore 01-02")
            };

            _log1 = new Log()
            {
                UidWell = _well1.Uid, NameWell = _well1.Name, UidWellbore = _wellbore1.Uid, NameWellbore = _wellbore1.Name, Name = _devKit.Name("Log 01"), Uid = _devKit.Uid()
            };
            _log2 = new Log()
            {
                UidWell = _well1.Uid, NameWell = _well1.Name, UidWellbore = _wellbore1.Uid, NameWellbore = _wellbore1.Name, Name = _devKit.Name("Log 02")
            };

            _devKit.InitHeader(_log1, LogIndexType.measureddepth);
            _devKit.InitHeader(_log2, LogIndexType.datetime);
        }
예제 #4
0
        public void Log141Adapter_DeleteFromStore_Can_Delete_Log_With_Data()
        {
            const int numOfRows = 10;

            // Add log
            AddParents();

            _devKit.InitHeader(_log, LogIndexType.measureddepth);
            _devKit.InitDataMany(_log, _devKit.Mnemonics(_log), _devKit.Units(_log), numOfRows);

            AddLog(_log);

            // Query log
            var result   = GetLog(_log);
            var logDatas = result.LogData;

            Assert.IsNotNull(logDatas);
            var logData = logDatas.FirstOrDefault();

            Assert.IsNotNull(logData);
            Assert.AreEqual(numOfRows, logData.Data.Count);

            // Delete log
            DeleteLog(_log, string.Empty);

            // Assert log is deleted
            var query   = _devKit.CreateLog(_log.Uid, null, _log.UidWell, null, _log.UidWellbore, null);
            var results = _devKit.Query <LogList, Log>(query, optionsIn: OptionsIn.ReturnElements.All);

            Assert.AreEqual(0, results.Count);

            var uri = _log.GetUri();

            // Assert Channel Data Chunk is deleted
            var chunks = GetDataChunks(uri);

            Assert.IsTrue(chunks.Count == 0);
        }
예제 #5
0
        public void TestSetUp()
        {
            var url = "http://localhost/Witsml.Web/WitsmlStore.svc"; // IIS

            //var url = "http://localhost:5050/WitsmlStore.svc"; // TestApp

            DevKit  = new DevKit141Aspect(TestContext, url);
            Context = new Witsml141Context(DevKit.ConnectionUrl);

            Well = new Well()
            {
                Name = DevKit.Name("Well 01"), TimeZone = DevKit.TimeZone, Uid = DevKit.Uid()
            };
            Wellbore = new Wellbore()
            {
                UidWell = Well.Uid, NameWell = Well.Name, Name = DevKit.Name("Wellbore 01-01"), Uid = DevKit.Uid()
            };
            Log = new Log()
            {
                UidWell = Well.Uid, NameWell = Well.Name, UidWellbore = Wellbore.Uid, NameWellbore = Wellbore.Name, Name = DevKit.Name("Log 01"), Uid = DevKit.Uid()
            };
            DevKit.InitHeader(Log, LogIndexType.measureddepth);
        }