diff --git a/CourseApp.Tests/DocumentTest.cs b/CourseApp.Tests/DocumentTest.cs new file mode 100644 index 0000000..41eb790 --- /dev/null +++ b/CourseApp.Tests/DocumentTest.cs @@ -0,0 +1,130 @@ +namespace CourseApp.Tests +{ + using Xunit; + + public class DocumentTest + { + [Fact] + public void OfficialTest() + { + var officDoc = new Official("Official memo 12", "Official memo", 451); + Assert.Equal("Official memo 12", officDoc.Name); + Assert.Equal("Official memo", officDoc.Type); + Assert.Equal(451, officDoc.Size); + } + + [Fact] + public void ProtocolTest() + { + var protDoc = new Protocol("Protocol 22122", "Protocol", 366); + Assert.Equal("Protocol 22122", protDoc.Name); + Assert.Equal("Protocol", protDoc.Type); + Assert.Equal(366, protDoc.Size); + } + + [Fact] + public void AnalyticalTest() + { + var anDoc = new Analytical("Special conclusion", "onclusion", 215); + Assert.Equal("Special conclusion", anDoc.Name); + Assert.Equal("onclusion", anDoc.Type); + Assert.Equal(215, anDoc.Size); + } + + [Fact] + public void OfficialDocumentSizeTest() + { + var officDoc = new Official("Official memo 12", "Official memo", 451); + var result = officDoc.DocumentSize(); + Assert.Equal("451 ", result); + } + + [Fact] + public void ProtocolDocumentSizeTest() + { + var protDoc = new Protocol("Protocol 22122", "Protocol", 366); + var result = protDoc.DocumentSize(); + Assert.Equal("366 ", result); + } + + [Fact] + public void AnalyticalDocumentSizeTest() + { + var anDoc = new Analytical("Special conclusion", "onclusion", 215); + var result = anDoc.DocumentSize(); + Assert.Equal("215 ", result); + } + + [Fact] + public void OfficialWayTest() + { + var officDoc = new Official("Official memo 12", "Official memo", 451); + var result = officDoc.Way(); + Assert.Equal("C:/files", result); + } + + [Fact] + public void ProtocolWayTest() + { + var protDoc = new Protocol("Protocol 22122", "Protocol", 366); + var result = protDoc.Way(); + Assert.Equal("D:/files/documents", result); + } + + [Fact] + public void AnalyticalWayTest() + { + var anDoc = new Analytical("Special conclusion", "onclusion", 215); + var result = anDoc.Way(); + Assert.Equal("C:/work/documents", result); + } + + [Fact] + public void OfficialNameOfElTest() + { + var officDoc = new Official("Official memo 12", "Official memo", 451); + var result = officDoc.NameOfEl(); + Assert.Equal("OfficialDocument: ", result); + } + + [Fact] + public void ProtocolNameOfElTest() + { + var protDoc = new Protocol("Protocol 22122", "Protocol", 366); + var result = protDoc.NameOfEl(); + Assert.Equal("ProtocolDocument: ", result); + } + + [Fact] + public void AnalyticalNameOfElTest() + { + var anDoc = new Analytical("Special conclusion", "onclusion", 215); + var result = anDoc.NameOfEl(); + Assert.Equal("AnalyticalDocument: ", result); + } + + [Fact] + public void OfficialToStringTest() + { + var officDoc = new Official("Official memo 12", "Official memo", 451); + var result = officDoc.ToString(); + Assert.Equal("Official memo 12; 451 ; Official memo", result); + } + + [Fact] + public void ProtocolToStringTest() + { + var protDoc = new Protocol("Protocol 22122", "Protocol", 366); + var result = protDoc.ToString(); + Assert.Equal("Protocol 22122; 366 ; Protocol", result); + } + + [Fact] + public void AnalyticalToStringTest() + { + var anDoc = new Analytical("Special conclusion", "onclusion", 215); + var result = anDoc.ToString(); + Assert.Equal("Special conclusion; 215 ; onclusion", result); + } + } +} \ No newline at end of file diff --git a/CourseApp/Analytical.cs b/CourseApp/Analytical.cs new file mode 100644 index 0000000..95b4784 --- /dev/null +++ b/CourseApp/Analytical.cs @@ -0,0 +1,31 @@ +namespace CourseApp; + +using System; + +public class Analytical : Document +{ + public Analytical(string name, string type, double size) + : base(name, type, size) + { + } + + public override string DocumentSize() + { + return $"{Size} Мб "; + } + + public override string Way() + { + return "C:/work/documents"; + } + + public override string NameOfEl() + { + return "AnalyticalDocument: "; + } + + public override string ToString() + { + return $"{Name}; {Size} Мб; {Type}"; + } +} \ No newline at end of file diff --git a/CourseApp/Document.cs b/CourseApp/Document.cs new file mode 100644 index 0000000..326893e --- /dev/null +++ b/CourseApp/Document.cs @@ -0,0 +1,39 @@ +namespace CourseApp; + +using System; + +public abstract class Document +{ + public Document(string name, string type, double size) + { + this.Name = name; + this.Type = type; + this.Size = size; + } + + public string Name { get; set; } + + public string Type { get; set; } + + public double Size { get; set; } + + public void Print() + { + Console.Write($"Название документа: {Name} Тип документа: {Type} Размер документа: {Size} Мб"); + } + + public virtual string DocumentSize() + { + return "200 Мб"; + } + + public virtual string Way() + { + return "sss"; + } + + public virtual string NameOfEl() + { + return "3"; + } +} \ No newline at end of file diff --git a/CourseApp/Phone.cs b/CourseApp/Phone.cs new file mode 100644 index 0000000..1c8e407 --- /dev/null +++ b/CourseApp/Phone.cs @@ -0,0 +1,38 @@ +namespace CourseApp +{ + using System; + + public class Phone + { + private float diaonal; + + public Phone(string name, float diagonal) + { + Name = name; + Diagonal = diagonal; + } + + public string Name { get; set; } + + public float Diagonal + { + get + { + return diaonal; + } + + set + { + if (value > 0 && value < 20) + { + this.diaonal = value; + } + } + } + + public void Show() + { + Console.WriteLine($"{Name} with diagonal {diaonal}"); + } + } +} \ No newline at end of file diff --git a/CourseApp/Program.cs b/CourseApp/Program.cs index d6d2c87..030f047 100644 --- a/CourseApp/Program.cs +++ b/CourseApp/Program.cs @@ -6,6 +6,20 @@ public class Program { public static void Main(string[] args) { + Phone phone1 = new Phone("iPhone", -7); + phone1.Show(); + phone1.Diagonal = 7; + phone1.Show(); + phone1.Diagonal = -16; + phone1.Show(); + + Phone tablet = new Phone("Android", 6); + tablet.Diagonal = 6; + tablet.Show(); + tablet.Diagonal = -10; + tablet.Show(); + tablet.Diagonal = 8; + tablet.Show(); Console.WriteLine("Hello World"); } } diff --git a/CourseApp/Protocol.cs b/CourseApp/Protocol.cs new file mode 100644 index 0000000..f0fd3ea --- /dev/null +++ b/CourseApp/Protocol.cs @@ -0,0 +1,31 @@ +namespace CourseApp; + +using System; + +public class Protocol : Document +{ + public Protocol(string name, string type, double size) + : base(name, type, size) + { + } + + public override string DocumentSize() + { + return $"{Size} Мб "; + } + + public override string Way() + { + return "D:/files/documents"; + } + + public override string NameOfEl() + { + return "ProtocolDocument: "; + } + + public override string ToString() + { + return $"{Name}; {Size} Мб; {Type}"; + } +} \ No newline at end of file diff --git a/README.md b/README.md index a79bfa3..2611643 100644 --- a/README.md +++ b/README.md @@ -33,4 +33,4 @@ Finally you may work with migration (from `WebApplication` folder). The followin ``` dotnet ef migrations add InitialMigration -``` \ No newline at end of file +```