Ejemplo n.º 1
0
        public void recv_duplicate_file()
        {
            temp.Setup(x => x.EndWrite()).Verifiable();
            temp.Setup(x => x.Delete()).Verifiable();
            util.Setup(x => x.HasDuplicateFile(ctx.fileCtx, ctx.device_id)).Returns(true).Verifiable();

            var state = new TransmitStartedState()
            {
                Util = util.Object
            };

            string sentData = "";

            ctx.SendFunc = (x) => { sentData = x; };
            ctx.SetState(state);
            ctx.handleFileEndCmd(new TextCommand {
                action = "file-end", file_name = "f.jpg"
            });

            Assert.AreEqual(1, ctx.recved_files);
            Assert.IsTrue(ctx.GetState() is TransmitInitState);

            temp.VerifyAll();


            var o = JsonConvert.DeserializeObject <TextCommand>(sentData);

            Assert.AreEqual("file-exist", o.action);
            Assert.AreEqual(ctx.fileCtx.file_name, o.file_name);
        }
Ejemplo n.º 2
0
        public void recv_file_happy_case()
        {
            var saved = new SavedPath {
                device_folder = "fff", relative_file_path = "rrr"
            };

            temp.Setup(x => x.EndWrite()).Verifiable();
            temp.Setup(x => x.Path).Returns("path1").Verifiable();
            storage.Setup(x => x.MoveToStorage("path1", ctx.fileCtx)).Returns(saved).Verifiable();
            util.Setup(x => x.GetNextSeq()).Returns(112345).Verifiable();
            util.Setup(x => x.SaveFileRecord(It.Is <FileAsset>(
                                                 f =>
                                                 f.device_id == ctx.device_id &&
                                                 f.event_time == ctx.fileCtx.datetime &&
                                                 !f.file_id.Equals(Guid.Empty) &&
                                                 f.file_name == ctx.fileCtx.file_name &&
                                                 f.file_path == Path.Combine(ctx.fileCtx.folder, ctx.fileCtx.file_name) &&
                                                 f.file_size == ctx.fileCtx.file_size &&
                                                 f.type == (int)ctx.fileCtx.type &&
                                                 f.saved_path == saved.relative_file_path &&
                                                 f.parent_folder == Path.GetDirectoryName(saved.relative_file_path) &&
                                                 f.seq == 112345)
                                             )).Verifiable();


            var state = new TransmitStartedState()
            {
                Util = util.Object
            };

            ctx.SetState(state);
            string sentData = "";

            ctx.SendFunc = (x) => { sentData = x; };
            bool called = false;

            ctx.OnFileReceived += (s, e) => { called = true; };
            ctx.handleFileEndCmd(new TextCommand {
                action = "file-end", file_name = "f.jpg"
            });

            Assert.AreEqual(1, ctx.recved_files);
            Assert.IsTrue(ctx.GetState() is TransmitInitState);

            util.VerifyAll();
            temp.VerifyAll();
            storage.VerifyAll();
            Assert.IsTrue(called);

            var o = JsonConvert.DeserializeObject <TextCommand>(sentData);

            Assert.AreEqual("file-exist", o.action);
            Assert.AreEqual(ctx.fileCtx.file_name, o.file_name);
        }