Пример #1
0
        public void AddWithDuration()
        {
            DateTime before = DateTime.Now.AddMinutes(-1);
            DateTime after  = DateTime.Now.AddMinutes(1);

            TimeSpanModel model = new TimeSpanModel {
                Duration = TimeSpan.FromMinutes(60)
            };

            Repository.Add(model);

            Assert.That(Records, Is.Not.Empty);
            var record = Records[0];

            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.Module, Is.EqualTo(module));
            Assert.That(record.GetFieldValue("Duration", -1), Is.EqualTo(60 * 60));
            Assert.That(record.RecordId, Is.GreaterThan(0));

            TimeSpanModel retrieved = Repository.FindById(record.RecordId);

            Assert.That(retrieved, Is.Not.Null);

            Assert.That(retrieved.Id, Is.EqualTo(record.RecordId));
            Assert.That(retrieved.Sample, Is.InRange(before, after));
            Assert.That(retrieved.Duration, Is.EqualTo(TimeSpan.FromMinutes(60)));
        }
Пример #2
0
        public void Extract_TimeSpan_ShouldMapFromTime()
        {
            // Arrange
            const string value = "123456";
            RfcErrorInfo errorInfo;

            _interopMock
            .Setup(x => x.GetTime(It.IsAny <IntPtr>(), It.IsAny <string>(), It.IsAny <char[]>(), out errorInfo))
            .Callback(new GetTimeCallback((IntPtr dataHandle, string name, char[] buffer, out RfcErrorInfo ei) =>
            {
                Array.Copy(value.ToCharArray(), buffer, value.Length);
                ei = default;
            }));

            // Act
            TimeSpanModel result = OutputMapper.Extract <TimeSpanModel>(_interopMock.Object, DataHandle);

            // Assert
            _interopMock.Verify(
                x => x.GetTime(DataHandle, "TIMESPANVALUE", It.IsAny <char[]>(), out errorInfo),
                Times.Once);
            _interopMock.Verify(
                x => x.GetTime(DataHandle, "NULLABLETIMESPANVALUE", It.IsAny <char[]>(), out errorInfo),
                Times.Once);
            result.Should().NotBeNull();
            result.TimeSpanValue.Should().Be(new TimeSpan(12, 34, 56));
            result.NullableTimeSpanValue.Should().Be(new TimeSpan(12, 34, 56));
        }
Пример #3
0
        private List <TimeSpanModel> GenrateSlots(RoomModel <TimeSpanModel> room, DateTime?BookingDate, MySqlConnection conn = null)
        {
            var availableSlots = new List <TimeSpanModel>();
            var startTimespan  = TimeSpan.Parse(room.StartTime);
            var endTimeSpan    = TimeSpan.Parse(room.EndTime);

            var bookedSlots = new List <TimeSpanModel>();

            if (BookingDate != null)
            {
                var sql = "Select * from bookings where room_id=" + room.Id + " and date='" + BookingDate.Value.ToString("yyyy-MM-dd") + "' and status=1";
                MySqlDataAdapter mydata = new MySqlDataAdapter(sql, conn);
                DataSet          ds     = new DataSet();
                mydata.Fill(ds);

                if (ds.Tables.Count > 0)
                {
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        bookedSlots.Add(new TimeSpanModel()
                        {
                            StartTime = Convert.ToString(ds.Tables[0].Rows[i]["start_time"]),
                            EndTime   = Convert.ToString(ds.Tables[0].Rows[i]["end_time"]),
                        });
                    }
                }
            }

            TimeSpan ts = TimeSpan.FromMinutes(Convert.ToInt32(room.BookingInterval));

            while (true)
            {
                if (TimeSpan.Compare(startTimespan, endTimeSpan) == 0)
                {
                    break;
                }

                var item = new TimeSpanModel
                {
                    StartTime = startTimespan.ToString(@"hh\:mm"),
                    EndTime   = startTimespan.Add(ts).ToString(@"hh\:mm")
                };
                item.IsActive = !bookedSlots.Exists(x => x.StartTime == item.StartTime && x.EndTime == item.EndTime);

                availableSlots.Add(item);
                startTimespan = startTimespan.Add(ts);
            }
            return(availableSlots);
        }
        public void SerializeTimeSpan()
        {
            // Arrange
            var serializer = new CustomJsonSerializer { JsonConverters = GraphClient.DefaultJsonConverters };
            var value = new TimeSpan(400, 13, 3, 2,10);
            var model = new TimeSpanModel
                {
                    Foo = value
                };

            // Act
            var result = serializer.Serialize(model.Foo);

            // Assert
            Assert.AreEqual("400.13:03:02.0100000", result.Replace("\"", ""));
        }
Пример #5
0
        public void SerializeTimeSpan()
        {
            // Arrange
            var serializer = new CustomJsonSerializer {
                JsonConverters = GraphClient.DefaultJsonConverters
            };
            var value = new TimeSpan(400, 13, 3, 2, 10);
            var model = new TimeSpanModel
            {
                Foo = value
            };

            // Act
            var result = serializer.Serialize(model.Foo);

            // Assert
            Assert.AreEqual("400.13:03:02.0100000", result.Replace("\"", ""));
        }
        public void SerializeTimeSpan()
        {
            // Arrange
            var serializer = new CustomJsonSerializer {
                JsonConverters = GraphClient.DefaultJsonConverters
            };
            var value = new TimeSpan(400, 13, 3, 2, 10);
            var model = new TimeSpanModel
            {
                Foo = value
            };

            // Act
            var result = serializer.Serialize(model);

            const string expected = "{\r\n  \"Foo\": \"400.13:03:02.0100000\"\r\n}";

            result.Should().Be(expected);
        }
Пример #7
0
        public void GetWithZeroDuration()
        {
            DateTime before = DateTime.Now.AddMinutes(-1);
            DateTime after  = DateTime.Now.AddMinutes(1);

            var record = ProductionRecords.NewRecord().MarkAsNew();

            record.SetFieldValue("Duration", 0);

            int recordId = SaveRecord(record);

            Assert.That(Records, Is.Not.Empty);

            TimeSpanModel retrieved = Repository.FindById(recordId);

            Assert.That(retrieved, Is.Not.Null);

            Assert.That(retrieved.Id, Is.EqualTo(recordId));
            Assert.That(retrieved.Sample, Is.InRange(before, after));
            Assert.That(retrieved.Duration, Is.EqualTo(TimeSpan.FromMinutes(0)));
        }
Пример #8
0
        public void TimeSpanToJsonStringConverter_Test()
        {
            var obj = new TimeSpanModel
            {
                MyTimeSpan = TimeSpan.FromMinutes(72),
                MyTimeSpan2 = null,
                MyNullableTimeSpan = null,
                MyNullableTimeSpan2 = TimeSpan.FromMinutes(72)
            };
            var jsonString = JsonConvert.SerializeObject(obj);

            //WriteJson assert
            jsonString.ShouldBe("{\"MyTimeSpan\":\"01:12:00\",\"MyTimeSpan2\":null,\"MyNullableTimeSpan\":null,\"MyNullableTimeSpan2\":\"01:12:00\"}");

            var obj2 = JsonConvert.DeserializeObject<TimeSpanModel>(jsonString);

            //ReadJson assert
            obj2.MyTimeSpan.ShouldBe(TimeSpan.FromMinutes(72));
            obj2.MyTimeSpan2.ShouldBeNull();
            obj2.MyNullableTimeSpan.ShouldBeNull();
            obj2.MyNullableTimeSpan2.ShouldBe(TimeSpan.FromMinutes(72));
        }
Пример #9
0
        public void Extract_NonNullableTimeSpan_ZeroOrEmptyOrInvalidTime_ShouldMapToZeroTimeSpan(string value)
        {
            // Arrange
            RfcErrorInfo errorInfo;

            _interopMock
            .Setup(x => x.GetTime(It.IsAny <IntPtr>(), It.IsAny <string>(), It.IsAny <char[]>(), out errorInfo))
            .Callback(new GetTimeCallback((IntPtr dataHandle, string name, char[] buffer, out RfcErrorInfo ei) =>
            {
                Array.Copy(value.ToCharArray(), buffer, value.Length);
                ei = default;
            }));

            // Act
            TimeSpanModel result = OutputMapper.Extract <TimeSpanModel>(_interopMock.Object, DataHandle);

            // Assert
            _interopMock.Verify(
                x => x.GetTime(DataHandle, "TIMESPANVALUE", It.IsAny <char[]>(), out errorInfo),
                Times.Once);
            result.Should().NotBeNull();
            result.TimeSpanValue.Should().Be(TimeSpan.Zero);
        }