Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
182.89 Кб
Скачать

Приложение д

Текст программы тестов приложения

namespace UnitTestClock

{

[TestClass]

public class UnitTestClock2

{

private void TestAssertColor(Clock clock, Brush color)

{

Assert.AreEqual(clock.CircleOfDial.Fill, color);

Assert.AreEqual(clock.SecondsArrow.Stroke, Brushes.Black);

Assert.AreEqual(clock.MinutesArrow.Stroke, Brushes.Black);

Assert.AreEqual(clock.MinutesArrow1.Stroke, Brushes.Black);

Assert.AreEqual(clock.HourArrow.Stroke, Brushes.Black);

Assert.AreEqual(clock.HourArrow1.Stroke, Brushes.Black);

if ((clock.CircleOfDial.Fill == Brushes.Yellow) || (clock.CircleOfDial.Fill == Brushes.White))

{

Assert.AreEqual(clock.TBDate.Foreground, Brushes.Black);

Assert.AreEqual(clock.TBTime.Foreground, Brushes.Black);

}

else

{

Assert.AreEqual(clock.TBDate.Foreground, Brushes.White);

Assert.AreEqual(clock.TBTime.Foreground, Brushes.White);

}

}

private void TestAssertDefaultConfig(Clock clock)

{

Assert.AreEqual(clock.TBDate.Visibility, ClockConfig.DefaultVisibleDate);

Assert.AreEqual(clock.TBTime.Visibility, ClockConfig.DefaultVisibleDigClock);

Assert.AreEqual(clock.SecondsArrow.Visibility, ClockConfig.DefaultVisibleSeconds);

Assert.AreEqual(clock.Radius, ClockConfig.defaultR);

Assert.AreEqual(clock.CircleOfDial.Fill.ToString(), ClockConfig.DefaultColor.ToString());

}

[TestMethod]

public void TestCreate()

{

Clock clock = new Clock();

Assert.IsNotNull(clock);

Assert.IsNotNull(clock.ParrentCanvas);

Assert.IsNotNull(clock.CircleOfDial);

Assert.IsNotNull(clock.TBDate);

Assert.IsNotNull(clock.TBTime);

Assert.IsNotNull(clock.HourArrow);

Assert.IsNotNull(clock.HourArrow1);

Assert.IsNotNull(clock.MinutesArrow);

Assert.IsNotNull(clock.MinutesArrow1);

Assert.IsNotNull(clock.SecondsArrow);

Assert.IsNotNull(clock.HourArrow1);

Assert.IsNotNull(clock.clockConfig);

}

[TestMethod]

public void TestSetSize()

{

Clock clock = new Clock();

double r = 150;

clock.SetSizeClock(150);

Assert.AreEqual(clock.Radius, r);

try

{

clock.SetSizeClock(100);

}

catch(EClockSize)

{

Assert.AreEqual(clock.Radius, r);

}

try

{

clock.SetSizeClock(360);

}

catch (EClockSize)

{

Assert.AreEqual(clock.Radius, r);

}

try

{

clock.ParrentCanvas = null;

clock.SetSizeClock(150);

}

catch (ClockException)

{

return;

}

Assert.Fail("Не возникло исключение!");

}

[TestMethod]

public void TestSetColor()

{

Clock clock = new Clock();

clock.SetColor(Brushes.Yellow);

this.TestAssertColor(clock, Brushes.Yellow);

clock.SetColor(Brushes.LightBlue);

this.TestAssertColor(clock, Brushes.LightBlue);

clock.SetColor(Brushes.White);

this.TestAssertColor(clock, Brushes.White);

clock.SetColor(Brushes.Black);

this.TestAssertColor(clock, Brushes.Black);

clock.HourArrow = null;

try

{

clock.SetColor(Brushes.Black);

}

catch (ClockException)

{

return;

}

Assert.Fail("Не возникло исключение!");

}

[TestMethod]

public void TestConfig()

{

File.Delete(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\" + ClockConfig.FileName);

Clock clock = new Clock();

clock.SetColor(Brushes.Yellow);

clock.SetSizeClock(170);

clock.TBDate.Visibility = Visibility.Hidden;

clock.TBTime.Visibility = Visibility.Hidden;

clock.SecondsArrow.Visibility = Visibility.Hidden;

ClockConfig.SetDefaultConfig(ref clock);

TestAssertDefaultConfig(clock);

//сохраняем настройки в файл //поумолчанию //изменяем //загружаем сохранненые//проверяем

clock.clockConfig.SaveConfig(clock);

clock.SetColor(Brushes.Yellow);

clock.SetSizeClock(170);

clock.clockConfig.LoadConfig(ref clock);

TestAssertDefaultConfig(clock);

//сохраняем недефолтные настойки//удаляем файл/

clock.SetColor(Brushes.Yellow);

clock.SetSizeClock(170);

clock.clockConfig.SaveConfig(clock);

//удаляем файл настроек и создаем новый экземпляр класса, должен создаться с дефолтными настройками

File.Delete(clock.clockConfig.FileDirectory);

clock = null;

clock = new Clock();

TestAssertDefaultConfig(clock);

//проверяем наличие файла настроек

Assert.AreEqual(File.Exists(clock.clockConfig.FileDirectory),false);

//удаляем файл и создаем пустой

string FileName = clock.clockConfig.FileDirectory;

File.Delete(clock.clockConfig.FileDirectory);

FileStream fs = File.Create(FileName);

fs.Close();

try

{

clock.clockConfig.LoadConfig(ref clock);

}

catch (EConfig)

{

clock = null;

}

try

{

clock = new Clock();

}

catch (EConfig)

{

clock = null;

File.Delete(FileName);

return;

}

Assert.Fail("No exception was thrown.");

}

[TestMethod]

public void TestRunThread()

{

int xs, ys, xm, ym, xh, yh;

String sDateTimeOld, sDateTimeNext;

DateTime DateTimeOld, DateTimeNext, сurrentDataTime;

Clock clock = new Clock();

Delegate ThreadStartDelegate = (ThreadStart)delegate() { clock.RepaintTime(); };

double xcenter = clock.ParrentCanvas.Width / 2;

double ycenter = clock.ParrentCanvas.Height / 2;

//запись в очередь диспетчера

//Dispatcher.CurrentDispatcher

clock.Dispatcher.Invoke(ThreadStartDelegate);

сurrentDataTime = clock.CurrentDataTime;

sDateTimeOld = clock.TBDate.Text + " " + clock.TBTime.Text;

DateTimeOld = DateTime.Parse(sDateTimeOld);

Thread.Sleep(1000);

clock.Dispatcher.Invoke(ThreadStartDelegate);

sDateTimeNext = clock.TBDate.Text + " " + clock.TBTime.Text;

DateTimeNext = DateTime.Parse(sDateTimeNext);

xs = (int)(Math.Cos(clock.CurrentDataTime.Second * 3.14f / 30 - 3.14f / 2) * (clock.Radius - 50) + xcenter);

ys = (int)(Math.Sin(clock.CurrentDataTime.Second * 3.14f / 30 - 3.14f / 2) * (clock.Radius - 50) + ycenter);

xm = (int)(Math.Cos(clock.CurrentDataTime.Minute * 3.14f / 30 - 3.14f / 2) * (clock.Radius - 70) + xcenter);

ym = (int)(Math.Sin(clock.CurrentDataTime.Minute * 3.14f / 30 - 3.14f / 2) * (clock.Radius - 70) + ycenter);

xh = (int)(Math.Cos((clock.CurrentDataTime.Hour * 30 + clock.CurrentDataTime.Minute / 2) * 3.14f / 180 - 3.14f / 2) * (clock.Radius - 85) + xcenter);

yh = (int)(Math.Sin((clock.CurrentDataTime.Hour * 30 + clock.CurrentDataTime.Minute / 2) * 3.14f / 180 - 3.14f / 2) * (clock.Radius - 85) + ycenter);

//положение секундноуй стрелки

Assert.AreEqual(clock.SecondsArrow.X2, xs);

Assert.AreEqual(clock.SecondsArrow.X1, xcenter);

Assert.AreEqual(clock.SecondsArrow.Y2, ys);

Assert.AreEqual(clock.SecondsArrow.Y1, ycenter);

//Минутная стрелка

//*****************

Assert.AreEqual(clock.MinutesArrow.X2, xm);

Assert.AreEqual(clock.MinutesArrow.X1, xcenter);

Assert.AreEqual(clock.MinutesArrow.Y2, ym);

Assert.AreEqual(clock.MinutesArrow.Y1, ycenter - 1);

//*****************

Assert.AreEqual(clock.MinutesArrow1.X2, xm);

Assert.AreEqual(clock.MinutesArrow1.X1, xcenter - 1);

Assert.AreEqual(clock.MinutesArrow1.Y2, ym);

Assert.AreEqual(clock.MinutesArrow1.Y1, ycenter);

//часовая стрелка

//*****************

Assert.AreEqual(clock.HourArrow.X2, xh);

Assert.AreEqual(clock.HourArrow.X1, xcenter);

Assert.AreEqual(clock.HourArrow.Y2, yh);

Assert.AreEqual(clock.HourArrow.Y1, ycenter-1);

//*****************

Assert.AreEqual(clock.HourArrow1.X2, xh);

Assert.AreEqual(clock.HourArrow1.X1, xcenter-1);

Assert.AreEqual(clock.HourArrow1.Y2, yh);

Assert.AreEqual(clock.HourArrow1.Y1, ycenter);

//проверка изменяется ли время

Assert.AreNotEqual(DateTimeOld, DateTimeNext);

Assert.AreNotEqual(сurrentDataTime, clock.CurrentDataTime);

Assert.AreEqual(сurrentDataTime < clock.CurrentDataTime, true);

clock.HourArrow = null;

try

{

clock.RepaintTime();

}

catch (ClockException)

{

return;

}

Assert.Fail("No exception was thrown.");

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]