Ejemplo n.º 1
0
        public string Format(TrackSlot trackSlot)
        {
            if (trackSlot == null)
            {
                throw new ArgumentNullException(nameof(trackSlot));
            }

            return(trackSlot.IsPreScheduled == false
                ? FormatScheduled(trackSlot)
                : FormatPreScheduled(trackSlot));
        }
Ejemplo n.º 2
0
    public int GetTrackIndex(TrackSlot trackSlot)
    {
        for (int i = 0; i < trackSlotList.Length; i++)
        {
            if (trackSlotList[i] == trackSlot)
            {
                return(i);
            }
        }

        return(0);
    }
Ejemplo n.º 3
0
        private string FormatScheduled(TrackSlot trackSlot)
        {
            var builder = new StringBuilder();

            foreach (var session in trackSlot.TrackSessions)
            {
                var formattedSession = _trackSessionFormatter.Format(session);
                builder.AppendLine(formattedSession);
            }

            return(builder.ToString());
        }
Ejemplo n.º 4
0
    // Start is called before the first frame update
    void Start()
    {
        playerAttackAnimator = GetComponent <PlayerAttackAnimator>();
        playerAttackSFX      = GetComponent <AudioSource>();

        playerTurner = GetComponent <PlayerTurner>();

        finalTrackSlotManager = Track.finalTrack.GetComponent <TrackSlotManager>();

        topSlot    = finalTrackSlotManager.slots[0].GetComponent <TrackSlot>();
        rightSlot  = finalTrackSlotManager.slots[1].GetComponent <TrackSlot>();
        bottomSlot = finalTrackSlotManager.slots[2].GetComponent <TrackSlot>();
        leftSlot   = finalTrackSlotManager.slots[3].GetComponent <TrackSlot>();
    }
Ejemplo n.º 5
0
        public void Should_Format_ReturnCorrectFormattedOutput_WhenSlotIsPreScheduled()
        {
            // Given
            var slot = new TrackSlot("Lunch", new TimeSlot(12, 0, 60), true);
            var trackSessionFormatter = Substitute.For <ITrackSessionFormatter>();

            var sut = new TrackSlotFormatter(trackSessionFormatter);

            // When
            var result = sut.Format(slot);

            // Then
            result.Should().Be("12:00PM Lunch " + Environment.NewLine);
        }
Ejemplo n.º 6
0
        public static TimeSlot GetNextSlot(this TrackSlot trackSlot, int duration)
        {
            if (trackSlot == null)
            {
                throw new ArgumentNullException(nameof(trackSlot));
            }
            if (duration <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(duration));
            }

            var datetime = DateTime.Today
                           .AddHours(trackSlot.TimeSlot.Hour)
                           .AddMinutes(trackSlot.TimeSlot.Minute);

            return(new TimeSlot(datetime.Hour, datetime.Minute, duration));
        }
Ejemplo n.º 7
0
        public void Should_AllocateSession_AllocateTheSessionBasedOnTheSlotAndCalculateRemainigCorrectly()
        {
            // Given
            var trackSlot           = new TrackSlot("Title", new TimeSlot(9, 0, 120));
            var calculatedTrackSlot = new CalculatedTrackSlot(trackSlot);

            var sessionDefinition = new SessionDefinition("Session 1", 60);

            // When
            calculatedTrackSlot.AllocateSession(sessionDefinition);

            // Then
            trackSlot.TrackSessions
            .Should().HaveCount(1);

            trackSlot.TrackSessions[0].Title.Should().Be(sessionDefinition.Title);
            trackSlot.TrackSessions[0].Time.DurationInMinute.Should().Be(sessionDefinition.Duration);
            trackSlot.TrackSessions[0].Time.Hour.Should().Be(trackSlot.TimeSlot.Hour);
            trackSlot.TrackSessions[0].Time.Minute.Should().Be(trackSlot.TimeSlot.Minute);
        }
Ejemplo n.º 8
0
        public void Should_Format_ReturnCorrectFormattedOutput_WhenSlotHasSessions()
        {
            // Given
            var slot    = new TrackSlot("Morning", new TimeSlot(9, 0, 180));
            var session = new TrackSession("Session #1", new TimeSlot(11, 15, 45));

            slot.TrackSessions.Add(session);

            var trackSessionFormatter = Substitute.For <ITrackSessionFormatter>();

            trackSessionFormatter.Format(Arg.Any <TrackSession>()).Returns("11:15AM Session #1");

            var sut = new TrackSlotFormatter(trackSessionFormatter);

            // When
            var result = sut.Format(slot);

            // Then
            result.Should().Be("11:15AM Session #1" + Environment.NewLine);
        }
Ejemplo n.º 9
0
        public void Should_Format_ReturnCorrectFormattedOutput()
        {
            // Given
            var slot  = new TrackSlot("Lunch", new TimeSlot(12, 0, 60), true);
            var track = new Track(1, new List <TrackSlot> {
                slot
            });

            var trackSlotFormatter = Substitute.For <ITrackSlotFormatter>();

            trackSlotFormatter.Format(Arg.Any <TrackSlot>()).Returns("12:00PM Lunch");

            var sut = new TrackFormatter(trackSlotFormatter);

            // When
            var result = sut.Format(track);

            // Then
            result.Should().Be("Track #1" +
                               Environment.NewLine +
                               Environment.NewLine +
                               "12:00PM Lunch");
        }
Ejemplo n.º 10
0
 private string FormatPreScheduled(TrackSlot trackSlot)
 {
     return($"{trackSlot.TimeSlot.ToTimeString()} {trackSlot.Title} {Environment.NewLine}");
 }
Ejemplo n.º 11
0
        public CalculatedTrackSlot(TrackSlot trackSlot)
        {
            _trackSlot = trackSlot ?? throw new ArgumentNullException(nameof(trackSlot));

            UnallocatedTime = trackSlot.TimeSlot.DurationInMinute;
        }