1 module konnexengine.db.devdb;
2 
3 import std.uuid: UUID, sha1UUID;
4 
5 /// DBEntry `struct`
6 struct DBEntry {
7 	UUID id;
8 	string email;
9 	string username;
10 	string password;
11 }
12 ///
13 unittest {
14 	DBEntry entry = DBEntry(
15 		sha1UUID("user1@email.com", sha1UUID("konnex-engine.com")),
16 		"user1@email.com",
17 		"user1", 
18 		"password1");
19 	assert(is(typeof(entry) == DBEntry));
20 	assert(is(typeof(entry.id) == UUID));
21 	assert(is(typeof(entry.email) == string));
22 	assert(is(typeof(entry.username) == string));
23 	assert(is(typeof(entry.password) == string));
24 	assert(entry.id == sha1UUID("user1@email.com", sha1UUID("konnex-engine.com")));
25 	assert(entry.email == "user1@email.com");
26 	assert(entry.username == "user1");
27 	assert(entry.password == "password1");
28 }
29 
30 /// DevDB `struct`
31 struct DevDB
32 {
33 	/// generateDevDB() `function`
34 	DBEntry[] generateUsers()
35 	{
36 		import std.conv: to;
37 		
38 		DBEntry[] devDB = [];
39 		
40 		for(uint i=0; i<10; i++)
41 		{
42 			devDB ~= DBEntry
43 			(
44 				sha1UUID("user"~i.to!string~"@email.com", sha1UUID("konnex-engine.com")),
45 				"user"~i.to!string~"@email.com",
46 				"user"~i.to!string,
47 				"password"~i.to!string
48 			);
49 		}
50 		return devDB;
51 	}
52 	///
53 	unittest {
54 		auto devDB = DevDB();
55 		auto db = devDB.generateUsers();
56 		assert(is(typeof(db) == DBEntry[]));
57 		assert(is(typeof(db[0].id) == UUID));
58 		assert(is(typeof(db[0].email) == string));
59 		assert(is(typeof(db[0].username) == string));
60 		assert(is(typeof(db[0].password) == string));
61 		assert(db[0].id == sha1UUID("user0@email.com", sha1UUID("konnex-engine.com")));
62 		assert(db[0].email == "user0@email.com");
63 		assert(db[0].username == "user0");
64 		assert(db[0].password == "password0");
65 	}
66 
67 	/// flushToDisk() `function`
68 	void flushToDisk(){
69 		import std.file: write;
70 
71 
72 	}
73 	///
74 	unittest {
75 		// TODO: implement test
76 		auto dbutils = DevDB();
77 		auto devDB = dbutils.generateUsers();
78 		assert(is(typeof(devDB) == DBEntry[]));
79 	}
80 }
81